Я думаю о том, стоит ли мне снова начать использовать VIM вместо IDE. Каковы наиболее полезные функции VIM, которые не являются стандартными в IDE?
emacs
вместо этого. ;-)
Я думаю о том, стоит ли мне снова начать использовать VIM вместо IDE. Каковы наиболее полезные функции VIM, которые не являются стандартными в IDE?
emacs
вместо этого. ;-)
Ответы:
Я не думаю, что это обязательно расширенные функции VIM, которые делают его таким мощным. Дело в том, что вам никогда не нужно отрывать руки от клавиатуры, чтобы что-то сделать. Найти что-то в огромном файле так же просто, как пару нажатий клавиш. Открытие и закрытие нескольких файлов в одном окне также невероятно быстро.
Хотя это может показаться на первый взгляд не интуитивным, но оно того стоит. Даже если вы не используете его как стандартную IDE (я обычно использую Visual Studio или Eclipse, например), вы обнаружите, что используете VIM для быстрого открытия и редактирования файлов, потому что это становится намного быстрее, чем ожидание IDE для нагрузить.
Потратьте время, чтобы научиться правильно пользоваться VIM, и вы никогда не пожалеете об этом. Я бы сказал, что это сравнимо с обучением прикосновению.
Для меня :global
команда - приложение-убийца. Он будет выполнять произвольные команды vim в любой строке, которая соответствует (или не соответствует) регулярному выражению.
Вот некоторые примеры:
Поведение по умолчанию состоит в перечислении каждой подходящей строки, поэтому:
:g/TODO:/
будет перечислять каждую строку, которая содержит текст "TODO:"
замените «Микки» на «Минни» в любой строке, которая также содержит слово «Мышь»
:g/Mouse/ s/Mickey/Minnie/
Команды могут иметь свой собственный диапазон, поэтому он будет удалять из каждой строки с «TODO:» следующую пустую строку:
: g / TODO: /., / ^ $ / d
Использование: g! выполнить в каждой строке, которая НЕ соответствует регулярному выражению, например, заменить «emacs» на «vim», за исключением строк, содержащих слово «sucks»:
:g!/sucks/ s/emacs/vim/
Я считаю невероятно полезной возможность удаления всего, что находится между набором парных символов. Например, довольно часто я хочу заменить строку в коде. Таким образом, di"
пока курсор находится в блоке, удалите строку, сохраняя при этом ""
нетронутым, и поместите курсор между двумя символами кавычек. da"
делает то же самое, но удаляет символы кавычки тоже.
ci"
удаляет и переводит курсор в режим вставки, чтобы вы могли немедленно начать запись.
«Завершение ключевого слова в режиме вставки». Ctrl-P и Ctrl-N в режиме вставки для поиска по тексту, чтобы попытаться завершить ввод любого имени переменной. Я никогда не видел этого ни в одной другой IDE, и мне очень не хватает этого. Завершение кода в IDE просто не то же самое.
^X^O
omni-завершает в режиме вставки, если он у вас включен. Но вы правы, я обнаружил, что использую завершение ключевых слов гораздо больше, чем полное.
Еще одна особенность, которую я считаю невероятно полезной, - это возможность менять отступы. :15,30>>
отступает все строки с 15-30 (включительно) дважды, тогда как :15,30<<
отступает одинаковые строки дважды.
=
что, если не больше, полезно, чем <<
и >>
.
команда dd (удалить текущую строку). Я так часто этим пользуюсь.
Также замечательно иметь возможность напечатать что-то вроде 3dd и удалить следующие 3 строки. Я никогда не видел это в другом редакторе = D
.
Команда. Это повторяет последнюю команду.
Быстрый доступ к командной строке. CTRL + Z или: wqa даст мне командную строку менее чем за 1 секунду, и моя рука не покинет клавиатуру.
:!/bin/bash
. Я пользуюсь :!
довольно часто.
:sh
На этот вопрос довольно сложно ответить, в какой-то мере из-за неопределенности вопроса и в некоторой степени из-за того, что IDE отличаются, и многие предоставляют функции, которых нет у других (и тот факт, что у меня их всего несколько).
Однако то, что я считаю, отличает Vim от других редакторов (да, даже от Emacs) - это действительно отличный редактор . С течением времени я использовал много редакторов и могу честно сказать, что очень немногие имеют такой полный набор функций для работы с текстом, как это делает Vim.
Мой стиль манипулирования текстом, например, очень часто включает дублирование (строка / выделение нескольких строк) и перемещение (выделение / выделение нескольких строк) вверх и вниз, для которых я давно определил быстрые ярлыки. Я скучаю по этим функциям в большинстве IDE (хотя я слышал, что ReSharper для VS имеет нечто подобное).
Знаете ли вы, что есть плагин vi для затмения ? Это стоит 15 евро (20 долларов США), но оно того стоит. Нет больше dd
в середине документа, и пропущены все крошечные полезные вещи.
Возможно, немного не по теме, но я подумал, что на это стоит обратить внимание.
В зависимости от того, на каком языке вы программируете, придерживайтесь ide или получите ide, предлагающий наибольшее количество рефакторингов, которые вы можете найти, получите более резкий инструмент для visual studio, если вы делаете c #, intellij для java или Visual Assist для Visual Studio, максимизировать рефакторинги в затмении или нетбинах.
Мы должны перейти от манипулирования текстом к манипулированию кодом, инструменты рефакторинга дают вам эту возможность. Если vim действительно предоставляет все функции, я, например, больше не хочу иметь дело с текстовым редактором.
Большинство IDE не позволяют разделить экран. Мне нравится эта функция в VIM.
<C-w>