Какой ваш самый быстрый ярлык с Vim?

Мне нравится метод добавления / удаления инструмента patcher / maintenance / feature. Даже если по какой-то причине вам нужно что-то обновить как тривиальное, я не вижу здесь «парадокса цыпленка или яйца», это скорее «одна рука омывает другое».

  1. Проверка приложений сервер для обновлений, если таковые имеются, проверьте, обновляется ли патчер, если необходимо, патчер приложений
  2. Патчер выполняется как отдельный процесс, загружает обновление и уведомляет приложение о запросах на его установку
  3. Вы согласны с тем, что приложение завершает работу с уведомлением патчера, патчер распаковывает данные, заменяет exe, делает дополнительные вещи, которые могут понадобиться новой версии, и запускает ее и завершает
1127
задан 12 revs, 9 users 36% 16 August 2017 в 10:58
поделиться

34 ответа

На самом деле я всегда терял свои буферы, поэтому обычно я копирую ряд строк, просто записываю их в временный файл, а затем читаю их в соответствующем месте.

например

ka (установите отметку)

'a,... w! t (скопируйте все из метки в файл t)

... передвиньте курсор вокруг ..

:.r t (читайте в t в соответствующее место).

Это, вероятно, требует меньшего количества нажатий клавиш, чем использование буфера, за этим легче следить, и вы можете долгое время вставлять файлы. Обычно я использую имена из 1 буквы для файлов, для скорости.

Ключевая причина быстроты в том, что для перемещения курсора вокруг вас просто используйте функцию поиска "/", и "n", если вы столкнетесь с другим вхождением паттерна до того, как доберетесь до нужного места.

.
5
ответ дан 19 December 2019 в 20:15
поделиться

В частности, для Копировать / вырезать и вставить , использование визуального режима значительно упрощает адаптацию из других редакторов. Обычно я выполняю вырезание и вставку следующим образом:

  • Esc - выйти из режима вставки (пропустить, если вы уже в нормальном режиме)
  • v - включить визуальный режим
  • перемещаться по файлу чтобы выделить нужный текст - визуальный режим покажет вам, какие символы выбраны. Для нескольких слов полезны w , e и b (переход к началу следующего слова, концу следующего слова и началу этого / предыдущего слова соответственно) .
  • d - вырезать текст (используйте y , если вы хотите скопировать текст)
  • переместитесь туда, куда вы хотите поместить текст
  • p - вставить (вставляется после текущего символа, P вставляется перед текущим символом.

Также полезно использовать V для перехода в визуальный режим (строка), который автоматически выбирает целые строки, где когда курсор находится на строке.

6
ответ дан 19 December 2019 в 20:15
поделиться

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, если хочу выдернуть целую строку.

6
ответ дан 19 December 2019 в 20:15
поделиться

В дополнение к замечательному ответу о Grokking vi, следует отметить, что vim действительно добавляет некоторые очень похожие на vi функции, которые делают лучше использовать команды vi. Первое, что приходит на ум, - это текстовые объекты: вместо {!} Fmt для переформатирования текущего абзаца, ! Apfmt делает то же самое. Он работает, сначала указывая, что мы хотим выбрать текстовый объект , который является текущим абзацем . Аналогично, чтобы изменить текущий строковый литерал ( foo на bar для примера) вместо T "ct" bar (перейти сразу после предыдущего ", измените , пока не будет непосредственно перед следующей " , вставьте bar ), вы можете сказать ci "bar : измените внутренние (самые внутренние) кавычки, вставив bar .

Думать в терминах текстовых объектов вместо команд перемещения довольно приятно.

4
ответ дан 19 December 2019 в 20:15
поделиться