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