На главную ->
MyLDP ->
Электронные книги по ОС Linux
Что такое Vim?
Vim
это компьютерная программа, используемая для написания любого текста,
будь то список покупок, книга или программный код.
Что
делает Vim уникальным, так это то, что он является
одновременно простым и мощным.
Простота
позволяет легко начать работу с Vim. Простота означает, что он
имеет минималистский интерфейс, который позволяет вам
сконцентрироваться на основной задаче — писать. Простота
означает, что он построен на нескольких основных концепциях,
понимание которых поможет вам легко изучить более глубокий
функционал.
Мощность
заключается в том, что многие вещи могут быть сделаны быстрее, лучше
и легче. Мощные средства делают не очень простые вещи возможными.
Мощные не значит, что они должна быть сложными. Мощные средства
следуют парадигме "Минимум усилий. Максимум эффекта".
Что может делать Vim?
Я
слышу, как вы говорите: "Итак - это текстовый редактор.
Подумаешь большое дело?"
Да,
большое.
Давайте
рассмотрим несколько случайных примеров, сравнив Vim с обычным
редактором. Цель этого упражнения для вас - ответить в каждом
примере на вопрос: «Как бы я это сделал в используемом мной
сейчас редакторе?".
Примечание:
Не слишком сосредотачивайтесь сейчас на деталях команд Vim,
основная задача этих примеров - познакомить вас с возможностями Vim,
не объясняя, как это работает. Тому, как это работает, будет
посвящена оставшаяся часть книги.
Редактирование
|
В Vim
|
Как
вы переместите курсор вниз на 7 строк?
|
Нажмите
7j
|
Как
вы удалите слово? Именно слово.
|
Нажмите
dw
|
Как
вы ищете в файле слово, на котором в данный момент находится
курсор?
|
Нажмите
*
|
Как
произвести поиск и замену только в строках с 50-ой по 100-ую?
|
Выполнить
:50,100s/old/new/g
|
Что
делать, если вы хотите посмотреть две разные части одного и того
же файла одновременно?
|
Выполнить
:sp для разделения ('split')
показываемого
|
Что
делать, если вы хотите открыть файл, имя которого прописано в
текущем документе и курсор стоит на нем?
|
Нажмите
gf (что означает 'g'o для этого
'f'ile)
|
Что
делать, если вы хотите выбрать лучшую цветовую схему дисплея?
|
Выполнить
:colorscheme desert,
для выбора цветовой схемы "desert" (моей любимой)
|
Что
делать, если вы хотите, чтобы сочетание клавиш Ctrl-S сохраняло
файл?
|
Выполните
:nmap <c-s> :w<CR>. Где
<CR> это "c'arriage 'r'eturn, т.е. возврат каретки.
|
Что
делать, если вы хотите сохранить все открытые файлы и измененные
вами настройки, так, чтобы вы могли продолжить редактирование
позже?
|
Выполните
:mksession ~/latest_session.vim, и
откройте Vim в следующий раз вот так
vim
-S ~/latest_session.vim.
|
Что
делать, если вы захотели увидеть ваш код с подсветкой синтаксиса?
|
Выполните
:syntax on. Если Vim
неправильно распознает язык, то используйте :set
filetype=Wikipedia, к примеру.
|
Что
делать, если вы хотите исключить из просмотра некоторые части
вашего файла с тем, чтобы вы могли сосредоточиться только на одной
части?
|
Выполните
:set foldmethod=indent
предполагается, что ваш файл имеет правильные отступы. Есть также
и другие методы складывания.
|
Что
делать, если вы хотите открыть несколько файлов во вкладках?
|
Используйте
:tabedit <file> для открытия
нескольких файлов в "tabs" (как в любимом браузере), и
используйте ctrl-pgup/ctrl-pgdn для
переключения между вкладками.
|
Вы
часто используете какие-то слова в документе, как можно быстро
вставлять их в следующий раз?
|
Нажмите
ctrl-n
и смотрите список завешений ("completions") для текущего
слова, основанный на всех словах, которые вы используете в текущем
документе. Или используйте
:ab
mas Maslow's hierarchy of needs
для раскрытия аббревиатуры автоматом, когда вы наберете m a s
<space>.
|
У
вас есть какие-то данные, где только первые 10 символов в каждой
строке являются полезными, а остальное уже не нужно для вас. Как
вы получите эти данные?
|
Нажмите
ctrl-v,
выделите текст и нажмите y
для копирования выделенных строк и столбцов текста.
|
Что
делать, если вы получили документ от кого-то, в котором все буквы
находятся в верхнем регистре, это вас раздражает и вы хотите
преобразовать их в нижний регистр?
|
В
Vim, выполните следующее:
:for
i in range(0,line('$'))
:call
setline(i,tolower(getline(i)))
:endfor
Не
волнуйтесь, подробности будут рассмотрены в последующих главах.
Более короткий способ сделать это же - запустить
:%s#\\(.\\)#\\l\\1#g , но с другой
стороны, способ выше проще вспомнить.
Существует
еще более простой способ выбрать весь текст (ggVG)
и использовать оператор u,
чтобы
конвертировать в нижний регистр, но опять же это слишком легко, и
не так круто, как представленный выше способ заставить Vim
делать это.
|
Уф.
Вы уже убеждены?
В
этих примерах можно увидеть силу Vim в действии. Любой другой
редактор сделает это безумно сложно для одинакового уровня
функциональности. И тем не менее, удивительно, что вся эта мощь
достигается так просто.
Обратите
внимание, что мы ни разу не использовали мышь в этих примерах! Это
хорошо. Подсчитайте, сколько раз вы переносите руку между клавиатурой
и мышью за день, и вы поймете, почему это хорошо, избегайте этого,
когда это возможно.
Я
надеюсь, вы не ошеломлены. В Vim хорошо то, что вам не нужно
знать все возможности для продуктивной работы с ним, вам просто нужно
знать несколько основных понятий.
После
изучения основных концепций, все остальные возможности могут быть
легко освоены, когда они вам понадобятся.