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