Что вам стоит знать, если вы начали изучение Vim

Что вам стоит знать, если вы начали изучение Vim

Nuances of programming

Перевод статьи Kade Killary: "Learning Vim: What I Wish I Knew"

Краткое предисловие

Vim. Три буквы, которые внушают страх в сердца миллионов. По стечению обстоятельств, я начал изучение Vim (улучшенная версия Vi) пару месяцев назад. Это была любовь с первого взгляда. И я продолжал пожирать статью за статьей, как некое мифическое животное. Эта статья является советом, который я желал найти в самом начале своего поиска, когда начинал изучение Vim.

Создаем свой собственный .vimrc

Во-первых, я начал со скачивания одного из заранее настроенных Vim-дистрибутивов — the Ultimate Configuration. Это было впечатляюще и интересно, однако у меня не было никаких идей, что делать дальше. У меня в руках был навороченный пулемет, но я не имел ни малейшего понятия, как снять его с предохранителя. Такая проблема является очень распространённой, когда ты в самом начале сталкиваешься с чьей-то конфигурацией. Если у вас нет желания разбираться с подобной конфигурацией или она кажется вам пугающей, то рекомендую все начать с нуля самому. Наилучший способ для того чтобы вам легко было начать изучение Vim – это просто следовать данному гайду.

Этот гайд научит вас тому, как провести первоначальную настройку и, как задавать свои конфигурации. Самым, наверное, крутым аспектом всего этого процесса является то, что вы начинаете понимать насколько сильно можно персонализировать конфигурацию. Ваш .vimrc или init.vim файл – для тех кто пользуется расширением Neovim, действительно становится программным расширением, а вы чувствуете себя тем кем вы должны являться – программистом. В этом файле будет отображено, то что вам нужно, и то как вы расходуете свое время. Путешествие от 50 строк кода до 500 или 500 будет увлекательным. Плюс, это один из лучших способов помочь самому себе в постижении Vim как с точки зрения философии, так и с точки зрения использования.

Относительные номера строк

Данный совет был исходным катализатором в понимании ценности предлагаемых Vim-ом преимуществ. До знакомства с относительными номерами я был халком, который разбивал jjjjjjjjjjjjjj и kkkkkkkkkk, как одержимый лунатик. Очевидно, упуская саму суть Vim. Затем я открыл для себя пост, в котором были описаны преимущества использования относительных номеров. Я был заинтригован. Я внес их в свой. vimrc файл и начал приготовление.

set number" show line numbers in vim
set relativenumber" show relative line numbers

В тот же момент я осознал огромную разницу. Я начал совершать более эффективные переходы. Это довольно распространенный процесс в Vim. Мое изучение данного процесса было похоже на что-то вроде этого: вначале я действовал, как пещерный человек, а затем изучил методы агента 007. На этом этапе я настоятельно рекомендую продолжить и прочитать полный текст с описаниями полезных привычек при работе с текстовыми редакторами.

f & F

В то время как мое вертикальное развитие улучшалось, то вот горизонтальное пока оставалось на уровне варваров. Llllllll, hhhhhhhh. Не существует идеального способа перемещения по длинным строкам. Я изучил два метода w и b, которые, хотя и удобные, но по-прежнему приводили к появлению большого количества wwwww и bbbbbbb. И только после того, как я обнаружил для себя f & F команду, то прогресс пошел. Фактически, команду f&F можно рассматривать как некий способ поиска. Нижний регистр f отвечает за поиск вперед, а верхний регистр F за поиск в обратном направлении. В любом случае вы поместите курсор на соответствующий символ. Если вы хотите, чтобы ваш курсор помещался прямо перед символом, то используйте команду t & T. Обе команды очень просты и впечатляюще динамичны. Например, команда dfS вырежет текст начиная с позиции курсора и заканчивая следующим символом S, который встретится в текущей строке, включая сам символ S.

с

На данном этапе я начал настраивать Vim под себя. Я могу с легкостью перемещаться вверх-вниз, влево-вправо. Одной из наиболее важных клавиш в моей дальнейшей разработке является ‘c’. Эта клавиша предназначена для применения различных изменений.

cw – изменяет следующее слово

cc – изменяет целую строку

ce – изменяет от текущей позиции курсора до конца слова

с$ – изменяет все до конца строки

ci” – изменяет содержимое двойных кавычек

ca” – изменяет все вокруг двойных кавычек

cfx – изменяет все до первого появления символа ‘x’

При всей мощности данной клавиши, её силу можно увеличить за счет совместного использования расширения targets.vim.

Использование CTRL вместо Caps Lock

На первый взгляд это кажется нелепым. Теперь вам придется удерживать shift всякий раз, как только вы захотите использовать символы верхнего регистра, однако данная замена является более практичной чем вам может показаться. Клавиша ctrl является центром огромного количества операций в Vim.

CTRL + (insert)

v – режим графических элементов

w – регулировка активного окна

r – восстановить

b – на страницу (экран) верх

f – на страницу (экран) вниз

d – на пол страницы (экрана) вниз

u – на пол страницы (экрана) верх

[ – встроенное отображение

Надеюсь, что у вас уже стало появляется общее представление о том, что вообще происходит. Зачастую, многие заменяют CTRL на ESC, чтобы переключиться в обычным режим. Хотя логично, что это не является оптимальным решением. Становится просто очевидно, что сочетание CTRL+[ однажды будет для вас вторым esc-режимом. Более того, клавиша CTRL играет очень важную роль во встроенных методах завершения редактора Vim. Сначала это будет неудобно, но с каждым повторным использованием, вы все больше и больше к этому привыкните.

Плагины не являются решением

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

Хотите использовать файловый менеджер? Просто введите: :Sex. Хотите избавиться от всех завершающих пробелов? Попробуйте что-то подобное: :%s/\s\+$//e. Этот список можно продолжать и продолжать. Может показаться совершенно невероятным, однако большая часть всех плагинов не настолько полезны как это может показаться. И это не означает, что все плагины плохие. Есть некоторое количество тех, которые по своей полезности на вес золота. Например, мне очень нравится плагин Nvim-R, но всегда будьте осторожны при выборе того или иного плагина. В основном, старайтесь найти решение через стандартные решения внутри Vim. Вы можете в большинстве случаев найти решение, используя команду :help ‘ваш запрос здесь’, внутри Vim. Такой способ предостережет вас от множества головных болей, а также вы сможете разобраться с документацией.

Для ознакомления с полной справкой по редактору Vim, которая представлена в виде PDF-файла, перейдите по ссылке.

Оставляйте все в базовом состоянии

Vim стремится к серьезной кастомизации. Это не обязательно плохо, однако в конце концов может сыграть не в вашу пользу. Для меня этот момент настал, когда я пытался использовать хоткеи из Vim в R Studio. Я настолько привык ко всем этим расширениям и сочетаниям клавиш, что мои навыки просто оказались несущественными. За меня все делали они – плагины и расширения. Без сомнения, использование H и L вместо o и $ более удобно, но в этом случае вы рискуете потерять соответствие. Ценность Vim заложена в сам язык. Если вы владеете стандартным Vim, то считайте, что вы приобрели полезный навык на всю жизнь. Кроме того, каждый, уменьшающий ценность Vim плагин, вы должны прописывать в конфигурационном файле. Это не означает, что не нужно их вообще использовать, это просто дружеское предупреждение.

Бонусный раздел

  • Poweline, Airline, Lightline: Все они безусловно привлекательны, однако в значительной степени бесполезны. Плюс, создание своей собственной строки статуса — это весело, и дает вам возможность начать работать со скриптами в Vim. Обратите внимание на этот и этот источник, они помогут вам, если вы начали изучение Vim.
  • Привыкаем использовать J & K: Для того чтобы быстрее привыкнуть к их использованию можно воспользоваться одним из самых распространенных методов, а именно, использовать хоткеи Vim в вашем браузере. Vimium для Chrome, и Vimmy для
  • Изучайте больше у более опытных разработчиков: https://www.reddit.com/r/vim/
  • Смотрите и изучайте на youtube
  • Хорошие книги: Practical VimPro Vim
  • Если все остальное не удается
  • Прочитать о скрытых возможностях навигации в Vim.