VI означает, что вам никогда не придется отрывать пальцы от клавиатуры.
С этой статьи я начал работать с Vim, и никогда не оглядывался назад:
http://www.viemu.com/a-why-vi-vim.html
В ней есть несколько отличных примеров возможностей Vim.
Редактирование файла на машине Solaris, которая разрешает только SSH доступ.
Использовать экран для сохранения сеанса работы на удаленном компьютере, доступ к которому осуществляется через ssh
Регулярные выражения Visual Studio немного напоминают Микки Мауса. У Vim есть полный язык регулярных выражений POSIX под рукой.
Насколько я могу судить (в Visual C # Express 2010) Ctrl-щелчок просто выбирает любое слово, на котором вы нажимаете. Чтобы сделать то же самое в VIM, вы можете объединить команду восстановления с командой перемещения.
Итак, вы нажимаете «y» для восстановления (копирования), затем «e» или «w», чтобы копировать до конца слова.
Есть много отличий.
Я предлагаю вам посмотреть несколько скринкастов на http://vimcasts.org/ , чтобы ощутить всю мощь vim.
например.:
Vim Essentials - хороший набор слайдов.
Лично я привык к vi очень давно, когда у нас не было такой роскоши, как мышь в студенческих терминалах Unix. С тех пор я использовал vi / vim для всего, что безопасно для написания электронных писем.
По сей день я, вероятно, использую только 1/20 команд, но никогда не чувствовал необходимости писать код в другом текстовом редакторе, и тянуться к мышке в среде IDE кажется мне очень неуклюжим .
Использование высокоуровневых и выразительных языков, не требующих IDE (в основном python, sql, javascript), действительно помогает. Полагаю, с Java или C ++ это было бы не так просто.
Отсутствие необходимости двигаться и указывать мышью при кодировании (безопасно для использования в браузере) также помогает предотвратить синдром запястного канала.
Кстати, я полагаю, Vim лучше интегрируется с Unix, чем с Windows ... и кто сказал, что 30 минут были немного оптимистичны :)
Вы всегда можете использовать эмулятор / надстройку Vim для Visual Studio и получить некоторую мощь vim, смешанную с функциями VS. Если вы уже используете Visual Studio, я предполагаю, что вы используете язык .NET, который без VS было бы гораздо более болезненным в использовании.
Обратите внимание, что я не использую Visual Studio и мало знаю об имеющихся в ней возможностях. Ниже приведены примеры того, что я нахожу полезным в Vim, а не список недостающих функций в Visual Studio.
Макросы
Легко создавать макросы для сложных (но повторяющихся) операций. Для иллюстрации на простом примере, допустим, мы начинаем с:
Line1
Line2
Line3
Line4
Line5
Теперь мы хотим обернуть каждую строку в print("");
оператор.
Поместите курсор на первую строку и введите:
qx
для начала записи макроса в регистр x
print("
Esc для вставки текста в начало строки");
Esc для добавления текста в конец строкиj
для перехода на одну строку внизq
для остановки записи макроса4@x
для выполнения макроса в регистре x
4 разаСмотрите : help complex-repeat
для получения дополнительной информации о макросах Vim.
Текстовые объекты
Обратите внимание, что это одно из улучшений Vim по сравнению с традиционным Vi. Если это не работает, вероятно, вы работаете в режиме совместимости с Vi; используйте :set nocompatible
, чтобы включить полную функциональность Vim.
Текстовые объекты позволяют легко выделять области текста. Допустим, мы начнем со следующего текста и поместим курсор на некоторый текст:
некоторый текст
Теперь мы хотим удалить все между и
. Это можно сделать, просто набрав команду
dit
(d'elete i'nner t'ag)! Или если мы хотим включить сами теги в наш выбор, используйте dat
(d'elete a t'ag). Чтобы удалить все внутри тегов , используйте
d2it
(d'elete two i'nner t'ags).
Аналогично можно использовать daw
(удаление слова), dap
(удаление абзаца), di"
(удаление внутри двойных кавычек) и т. д.; полный список см. в :help text-objects
.
Еще один полезный пример текстовых объектов:
v2ap "+y
v
переключает визуальный режим. Это позволяет легче видеть, что вы выбираете, и корректировать выделение серией нескольких движений перед выполнением команды. 2ap
выделяет этот абзац и следующий"+
выбирает системный буфер обмена в качестве регистра для следующей операцииy
перебрасывает выделение на заданный регистрДругими словами, эта команда скопирует два абзаца из вашего текста в системный буфер обмена (например, для вставки их сюда, на StackOverflow).
Глобальное редактирование
Команда global
используется для применения команды Ex ко всем строкам, соответствующим заданному регулярному выражению. Примеры:
:global/test/print
или :g/test/p
выведет все строки, содержащие фразу test:global/test/delete
или :g/test/d
удалит указанные строки: global/test/substitute/^/#/
или :g/test/s/^/#/
будет искать строки, содержащие фразу test, и закомментировать их, заменив regexp якорь ^
(begin-of-line) на символ #
. Вы также можете сделать несколько интересных вещей, передавая поисковые движения /шаблон
или ?шаблон
в качестве диапазонов:
:?test?move .
ищет строку, содержащую test, и перемещает ее на текущую позицию в файле:/test/copy .
ищет строку, содержащую test, и копирует ее в текущую позицию в файлеУдачи и веселого изучения Vim!
teco - ваш ответ. Вам нужны только PDP-10 и ASR-33, и вы уже в пути!
Редактирование документов по SSH. Vim очень хорош для этого.
Edit: похоже, многие уже сказали об этом :)