Какие функции Vim вы используете?

2176
Frew Schmidt

Я провожу почти весь день за программированием в Vim, и я уверен, что многие из вас тоже. Какие функции вы используете, которые делают ваше повседневное программирование намного лучше? Я использую gv, который позволит вам повторно выбрать ранее выделенный текст. Это отлично подходит для переиндексации!

13
Для исторических целей, вот ссылка на оригинальный вопрос SO: http://stackoverflow.com/questions/95072/what-are-your-favorite-vim-tricks Jax 14 лет назад 1
Обратите внимание на мой комментарий ниже, и вам даже не придется вводить `gv`. :) Nathan Long 13 лет назад 0

13 ответов на вопрос

9
karlgrz

:% s / x / y / g

Эта команда заменяет все вхождения x в текущем файле на y . По сути, это всего лишь поиск и замена, но я использую его так часто, так как научился этому на работе, что он стал бесценным.

Также строка поиска

затем n для навигации по всем экземплярам строки поиска в файле. Отлично подходит для ручной настройки, особенно если вы не можете применить правило ко всему файлу.

Я на самом деле работаю над преобразованием большой части нашей кодовой базы на работе, и я делаю это полностью с помощью регулярных выражений vim (пока). Это работает очень хорошо! Frew Schmidt 14 лет назад 0
Добавьте «c» в конце этого, чтобы сделать команду интерактивной. например:% s / x / y / gc sml 13 лет назад 0
Обратите внимание, что `%` - это место для подстановки - `%` означает «текущий файл». Если вы визуально выделите несколько строк и наберете `: s`, вы можете сделать замену только в этом выделении. Nathan Long 13 лет назад 1
7
Nathan Long

== делает хороший авто-отступ на текущей строке.

Обычно, однако, я использую =движение, например, =Gдля отступа в конце файла или =i}для отступа внутри текущего набора фигурных скобок.

Также имейте в виду >> и <<, которые могут делать (не) отступ. Frew Schmidt 14 лет назад 2
@Frew - да. Также, если вы добавите `vmap > gv` и `vmap Nathan Long 13 лет назад 0
6
Kristo

=% для автоматического отступа всего в блоке кода.

Оооо! Это ново для меня! Frew Schmidt 14 лет назад 0
Это работает, если ваш курсор находится в начале `{`. Если вы внутри блока, вы можете сделать `= i {`, для «отступа внутри фигурных скобок». Nathan Long 13 лет назад 0
5
Lucas Jones

Команда :!- бесценная для lsпингвинов, и "sudo tee" трюк.

Меня попросили объяснить трюк. По сути, он позволяет вам сохранить текстовый файл с правами администратора, даже если вы не запускали VIM от имени root:

:w !sudo tee % 
Возможно, вы захотите объяснить трюк «sudo tee» здесь :-) Также мне нравится делать:! Sort после выделения определений переменных и еще много чего. Frew Schmidt 14 лет назад 0
Вы действительно можете превратить Vim в замечательный редактор с поддержкой скриптов, используя:! и некоторые сценарии оболочки / Python / Perl / другие. Jonas 14 лет назад 0
У меня на самом деле есть альтернатива `! Ls`, которая запускает` vnew`, выводит `r! Ls` в новый буфер и сжимает его по горизонтали. Я не могу вспомнить все файлы в каталоге с более чем тремя;) new123456 12 лет назад 0
5
Jonas

Используйте *в командном режиме для поиска слова под курсором.

И не забывайте, что это сестринская команда, #, которая делает то же самое, но идет назад, а не вперед! Frew Schmidt 14 лет назад 1
4
Phoshi
. 

Ударить клавиша повторяет предыдущую команду. Прекрасно, скажем, для редактирования .iniили около того.

это на удивление мощно, но требуется немного энергии, прежде чем вы сможете по-настоящему освоиться с ним. aaron 12 лет назад 0
3
mas

цветовая подсветка синтаксиса

2
erichui

Я всегда использую gq, чтобы заново переносить разрывы строк в электронной почте, текстовых файлах и т. Д. Действительно полезно при ответе на электронную почту (я использую pine) и редактировании нескольких предыдущих ответов.

Ооо, я совсем забыла об этом! Frew Schmidt 14 лет назад 0
Почему, почему, более популярные почтовые клиенты не поддерживают подобную функциональность? erichui 14 лет назад 0
Недавно я использую gw вместо gq, потому что он сохраняет позицию курсора SergioAraujo 6 лет назад 0
2
Jack M.

С чего начать ... Вот те вещи, которые я могу вспомнить, я использовал за последние 5 минут или около того.

  • NERD Tree - Просмотр файлов. Делает VIM больше похожим на IDE.
    • Для меня очень важна возможность cdсоздания каталога, а затем перехода к приглашению оболочки через мои отображения оболочки (ниже).
  • ci для опустошения всего, что вы застряли между.
  • :! для запуска стандартных приложений.
    • У меня есть сопоставления для запуска приглашения оболочки, клиента mysql, файлов журнала apache и т. Д.
    • Интеграция Subversion всегда хороша. Быстрый diffс, statс и т. Д.
  • :abbr за повторяющуюся печать больших блоков уходи.
  • Вкладки. Нужно ли мне сказать больше?
  • Разделение файлов, всегда хорошо. :Sexвсегда приятно.
  • :set paste! чтобы избежать авто-отступа.
Я использую все это, за исключением аббревиатуры. Я стараюсь делать больше макросов, чем аббревиатур. Frew Schmidt 14 лет назад 0
2
dogbane

ZZ сохранить и выйти (вместо: WQ!)

А? Как насчет ** х **? DevSolar 12 лет назад 0

Похожие вопросы