Мне нравится метод добавления / удаления инструмента patcher / maintenance / feature. Даже если по какой-то причине вам нужно что-то обновить как тривиальное, я не вижу здесь «парадокса цыпленка или яйца», это скорее «одна рука омывает другое».
На самом деле я всегда терял свои буферы, поэтому обычно я копирую ряд строк, просто записываю их в временный файл, а затем читаю их в соответствующем месте.
например
ka (установите отметку)
'a,... w! t (скопируйте все из метки в файл t)
... передвиньте курсор вокруг ..
:.r t (читайте в t в соответствующее место).
Это, вероятно, требует меньшего количества нажатий клавиш, чем использование буфера, за этим легче следить, и вы можете долгое время вставлять файлы. Обычно я использую имена из 1 буквы для файлов, для скорости.
Ключевая причина быстроты в том, что для перемещения курсора вокруг вас просто используйте функцию поиска "/", и "n", если вы столкнетесь с другим вхождением паттерна до того, как доберетесь до нужного места.
.В частности, для Копировать / вырезать и вставить , использование визуального режима значительно упрощает адаптацию из других редакторов. Обычно я выполняю вырезание и вставку следующим образом:
v
- включить визуальный режим w
, e
и b
(переход к началу следующего слова, концу следующего слова и началу этого / предыдущего слова соответственно) . d
- вырезать текст (используйте y
, если вы хотите скопировать текст) p
- вставить (вставляется после текущего символа, P
вставляется перед текущим символом. Также полезно использовать V
для перехода в визуальный режим (строка), который автоматически выбирает целые строки, где когда курсор находится на строке.
http://www.viemu.com/a-why-vi-vim.html хороший пропагандистская статья. Это объясняет возможности использования . команда для повтора последнего редактирования.
Копировать / вырезать и вставить. Я делаю это все время. Во всех классических редакторах вы нажимаете Shift левой рукой, и перемещаете курсор правой рукой , чтобы выделить текст. Затем Ctrl + C копирует, вы перемещаете курсор и Ctrl + V вставляет.
С Vim это ужасно:
* yy, чтобы скопировать одну строку (вам почти никогда не понадобится вся строка!) * [number xx] yy, чтобы скопировать xx строк в буфер. Но вы никогда не узнаете
точно, выбрали ли вы то, что хотели. Мне часто приходится делать [номер xx] dd, а затем u, чтобы отменить!
Я уверен, что другие ответы объяснили лучше, но вы делаете это неправильно. Я часто использую визуальный режим для выделения текста для восстановления или удаления, что похоже на ваш пример shift + select, но у Vim здесь явное преимущество, потому что ваши руки никогда не покидают домашний ряд, чтобы сделать это. yy - отличная команда, но я часто использую Vy, если хочу выдернуть целую строку.
В дополнение к замечательному ответу о Grokking vi, следует отметить, что vim действительно добавляет некоторые очень похожие на vi функции, которые делают лучше использовать команды vi. Первое, что приходит на ум, - это текстовые объекты: вместо {!} Fmt
для переформатирования текущего абзаца, ! Apfmt
делает то же самое. Он работает, сначала указывая, что мы хотим выбрать текстовый объект
, который является текущим абзацем . Аналогично, чтобы изменить текущий строковый литерал ( foo
на bar
для примера) вместо T "ct" bar
(перейти сразу после предыдущего "
, измените , пока не будет непосредственно перед следующей "
, вставьте bar ), вы можете сказать ci "bar
: измените внутренние (самые внутренние) кавычки, вставив bar .
Думать в терминах текстовых объектов вместо команд перемещения довольно приятно.