Разница между 1.41
и текущей версией
РедакторVim.
@@ -1,3 +1,4 @@
+= Vim
- Work in progress
@@ -48,22 +49,30 @@
iHello, world!'''<ESC>''':wq
Теперь по порядку о том, что мы сделали:
- 1 ``i`` - команда перехода в режим вставки (После нажатия внизу появляется строка ``-- INSERT --``);
- 1 ``Hello,world!`` - в режиме вставки строка печатается на экран;
- 1 ``'''<ESC>'''`` - возвращаем vim в командный режим;
- 1 ``:wq`` - команда для сохранения файла и выхода из текстового редактора.
+ 1 ``i`` — команда перехода в режим вставки (После нажатия внизу появляется строка ``-- INSERT --``);
+ 1 ``Hello,world!`` — в режиме вставки строка печатается на экран;
+ 1 ``'''<ESC>'''`` — возвращаем vim в командный режим;
+ 1 ``:wq`` — команда для сохранения файла и выхода из текстового редактора.
--- Перемещение курсора
+- Посимвольное перемещение курсора
Для перемещения курсора по тексту в командном режиме используются клавиши ``hjkl``:
-``h`` - переместить курсор влево,
-``j`` переместить курсор вниз,
-``k`` - переместить курсор вверх,
-``l`` - переместить курсор вправо.
-Использовать ``hjkl`` для перемещения гораздо удобнее, чем тянуть руку к мышке
-или клавишам со стрелками (при слепом десятипальцевом методе набора ваши пальцы уже лежат на клавишах ``jkl``),
--- Базовые команды
+ ``h`` : переместить курсор влево,
+ ``j`` : переместить курсор вниз,
+ ``k`` : переместить курсор вверх,
+ ``l`` : переместить курсор вправо.
+
+Вы можете использовать клавиши со стрелками (← ↑ → ↓) но использовать ``hjkl`` для перемещения гораздо удобнее, чем тянуть руку к мышке
+или клавишам со стрелками (при слепом десятипальцевом методе набора ваши пальцы уже лежат на клавишах ``jkl``).
+
+- Числовые аргументы
+
+Перед любой командой перемещения курсора можно указать число,
+обозначающее сколько раз команда будет выполнена.
+Например команда 4j перемещает курсор на 4 строки вниз.
+
+- Базовые команды
Команда удаления символа под курсором ``x``.
@@ -79,53 +88,53 @@
определяющее сколько раз команда будет выполнена,
например для удаления четырёх символов вместо четырёх нажатий на ``x`` можно набрать команду ``4x``
--- Пара слов о командном режиме
+- Пара слов о командном режиме
Можно относиться к командам vim как к предложениям.
-Есть глаголы (например f - find, d - delete, g - go), есть существительные (например w - word, буквы, числа).
+Есть глаголы (например f — find, d — delete, g — go), есть существительные (например w — word, буквы, числа).
Примеры составления предложений:
- * Delete till find 'b' (удалить всё до символа 'b') - ``dtfb``
- * Mark from there to 22 line (выделить всё с текущего символа до 22 строки) - ``vg22g``
+ * Delete till find 'b' (удалить всё до символа 'b') — ``dtfb``
+ * Mark from there to 22 line (выделить всё с текущего символа до 22 строки) — ``vg22g``
Соответственно чем больше вы знаете «слов», тем более сложные и полезные «предложения» вы сможете составлять.
-Вторая часть статьи - краткий конспект различных возможностей и команд vim.
+Вторая часть статьи — краткий конспект различных возможностей и команд vim.
--- 1. Режимы Vim
+- 1. Режимы Vim
Помимо описанных выше режимов работы (вставка, командный режим) vim поддерживает множество других.
-Более того, переход может быть выполнен несколькими способами
+Более того, переход между режимами может быть выполнен несколькими способами.
---- 1.1 Командный режим
+-- 1.1 Командный режим
Режим по умолчанию. Из него осуществляется переход в другие режимы и выполнение команд.
-Клавиша перехода - '''<ESC>'''.
+Клавиша перехода — '''<ESC>'''.
Все команды из разделов 3 - 10 выполняются из этого режима.
---- 1.2 Режим ввода
+-- 1.2 Режим ввода
Клавиши перехода:
- * ``i`` : ввод с текущего символа;
- * ``a`` - ввод со следующего символа;
- * ``o`` - перейти в режим ввода с новой строки под курсором;
- * ``O`` - перейти в режим ввода с новой строки над курсором;
- * ``I`` - переместиться в начало строки и перейти в режим ввода;
- * ``A`` - переместиться в конец строки и перейти в режим ввода.
+ * ``i`` — ввод с текущего символа;
+ * ``a`` — ввод со следующего символа;
+ * ``o`` — перейти в режим ввода с новой строки под курсором;
+ * ``O`` — перейти в режим ввода с новой строки над курсором;
+ * ``I`` — переместиться в начало строки и перейти в режим ввода;
+ * ``A`` — переместиться в конец строки и перейти в режим ввода.
---- 1.3 Режим выделения
+-- 1.3 Режим выделения
Клавиши перехода:
- * ``v`` - посимвольное выделение;
- * ``V`` - построчное выделение.
+ * ``v`` — посимвольное выделение;
+ * ``V`` — построчное выделение.
---- 1.4 Режим замены
+-- 1.4 Режим замены
-Клавиша перехода - ``R``.
+Клавиша перехода — ``R``.
--- 2. Справка
+- 2. Справка
Vim содержит довольно полную документацию, которой можно воспользоваться в любой момент.
Для её просмотра необходимо использовать команду ``:help``.
@@ -135,21 +144,21 @@
$ '''vimtutor''
--- 3. Работа с файлами и сессиями
+- 3. Работа с файлами и сессиями
-``:mksession`` - создать файл сессии (в файл Session.vim сохраняется информация о настройках и всех открытых файлах и буферах);
+``:mksession`` — создать файл сессии (в файл Session.vim сохраняется информация о настройках и всех открытых файлах и буферах);
-``source Session.vim`` - загрузить файл сессии (все настройки и открытые в прошлый раз окна восстанавливаются);
+``source Session.vim`` — загрузить файл сессии (все настройки и открытые в прошлый раз окна восстанавливаются);
-``:e``FILE - открывает FILE на редактирование;
+``:e``FILE — открывает FILE на редактирование;
-``:w``[FILE] - записывает сделанные изменения в открытый файл или FILE, если он указан;
+``:w``[FILE] — записывает сделанные изменения в открытый файл или FILE, если он указан;
-``:q`` - выход из vim. При ``:q!`` выход без записи сделанных изменений.
+``:q`` — выход из vim. При ``:q!`` выход без записи сделанных изменений.
-'''РЕМАРКА:''' - можно смешивать несколько команд в одну. Например - ``:wq``
+'''РЕМАРКА:''' можно смешивать несколько команд в одну. Например — ``:wq``
--- 4. Перемещение
+- 4. Перемещение
Перемещение курсора:
@@ -160,98 +169,98 @@
'''РЕМАРКА:''' Удобство в том, что при такой раскладке пальцы всегда лежат на большинстве нужных клавиш, и не нужно перемещать руку от букв к клавишам стрелок.
-``^`` - курсор в начало строки;
+``^`` — курсор в начало строки;
-``$`` - курсор в конец строки;
+``$`` — курсор в конец строки;
-``w`` - курсор в начало следующего слова;
+``w`` — курсор в начало следующего слова;
-``b`` - курсор в начало предыдущего слова;
+``b`` — курсор в начало предыдущего слова;
-``{NUM}gg`` - переход на {NUM} строку;
+``{NUM}gg`` — переход на {NUM} строку;
-``G`` - переход в конец файла;
+``G`` — переход в конец файла;
-``ctrl + y`` - экран на 1 строку вверх;
+``ctrl + y`` — экран на 1 строку вверх;
-``ctrl + e`` - экран на 1 строку вниз;
+``ctrl + e`` — экран на 1 строку вниз;
-``ctrl + u`` - экран на 1/2 страницы вверх;
+``ctrl + u`` — экран на 1/2 страницы вверх;
-``ctrl + d`` - экран на 1/2 страницы вниз;
+``ctrl + d`` — экран на 1/2 страницы вниз;
-``ctrl + b`` - экран на страницу вверх;
+``ctrl + b`` — экран на страницу вверх;
-``ctrl + u`` - экран на страницу вверх.
+``ctrl + u`` — экран на страницу вверх.
--- 5. Отмена действий
+- 5. Отмена действий
-``u`` - отменяет предыдущее действие. Может применяться несколько раз. Аналог комбинации ``ctrl + z``;
+``u`` — отменяет предыдущее действие. Может применяться несколько раз. Аналог комбинации ``ctrl + z``;
-``ctrl + r`` отмена отмены предыдущего действия. Аналог комбинации ``ctrl + shift + z``.
+``ctrl + r`` — отмена отмены предыдущего действия. Аналог комбинации ``ctrl + shift + z``.
--- 6. Поиск
+- 6. Поиск
-``/{regex}`` - поиск регулярного выражения {regex} в текущем файле от курсора к концу файла;
+``/{regex}`` — поиск регулярного выражения {regex} в текущем файле от курсора к концу файла;
-``/{regex}`` - поиск регулярного выражения {regex} в текущем файле от курсора к началу файла;
+``/{regex}`` — поиск регулярного выражения {regex} в текущем файле от курсора к началу файла;
-``n`` - найти следующее вхождение;
+``n`` — найти следующее вхождение;
-``N`` - найти предыдущее вхождение;
+``N`` — найти предыдущее вхождение;
-``f{letter} или F{letter}`` - перемещает курсор на следующую (или предыдущую если F) букву {letter} в текущей строке;
+``f{letter} или F{letter}`` — перемещает курсор на следующую (или предыдущую если F) букву {letter} в текущей строке;
-``t{letter} или T{letter}`` - перемещает курсор за один символ до следующей (или предыдущей если T) буквы {letter} в текущей строке.
+``t{letter} или T{letter}`` — перемещает курсор за один символ до следующей (или предыдущей если T) буквы {letter} в текущей строке.
--- 7. Редактирование
+- 7. Редактирование
-``{NUM}dd`` - удаление {NUM} строк;
+``{NUM}dd`` — удаление {NUM} строк;
-``{NUM}cc`` - аналог dd, но после удаления переворит редактор в режим ввода;
+``{NUM}cc`` — аналог dd, но после удаления переворит редактор в режим ввода;
-``{NUM}yy`` копирование {NUM} строк в буфер обмена;
+``{NUM}yy`` — копирование {NUM} строк в буфер обмена;
-``p`` - вставка из буфера обмена после позиции курсора;
+``p`` — вставка из буфера обмена после позиции курсора;
-``P`` - вставка из буфера обмена до позиции курсора;
+``P`` — вставка из буфера обмена до позиции курсора;
-``x`` - удаление символа под курсором.
+``x`` — удаление символа под курсором.
--- 8. Вызов внешних команд
+- 8. Вызов внешних команд
-``:!cmd`` - вызывает shell команду cmd для обработки переданных данных. Если данных не передано, показывает вывод команды на экран.
+``:!cmd`` — вызывает shell команду cmd для обработки переданных данных. Если данных не передано, показывает вывод команды на экран.
Пример:
-``:!ls`` - листинг файлов в текущей директории;
+``:!ls`` — листинг файлов в текущей директории;
-``:%wc -w`` - подсчёт слов в файле.
+``:%wc -w`` — подсчёт слов в файле.
Делаем vim hex-редактором:
-``%!xxd`` - конвертирует файл в хекс представление;
+``%!xxd`` — конвертирует файл в хекс представление;
-``%!xxd -r`` - конвертирует обратно.
+``%!xxd -r`` — конвертирует обратно.
--- 9. Прочие полезные команды
+- 9. Прочие полезные команды
-``:E`` - Открывает меню выбора файла;
+``:E`` — Открывает меню выбора файла;
-``:setlocal`` - показывает текущие локальные переменные.
+``:setlocal`` — показывает текущие локальные переменные.
--- 10. Путешествие по меткам
+- 10. Путешествие по меткам
В отношении языков программирования меткой является
некий объект (функция, переменная, структура, ...).
Vim позволяет организовать удобное перемещение к определениям меток.
-``ctrl + ]`` - перейти к первому определению метки, находящейся под курсором;
+``ctrl + ]`` — перейти к первому определению метки, находящейся под курсором;
-``ctrl + g`` - то же что и ``ctrl + ]``, но показывает меню выбора, если определений несколько;
+``ctrl + g`` — то же что и ``ctrl + ]``, но показывает меню выбора, если определений несколько;
-``ctrl + t`` - вернуться обратно.
+``ctrl + t`` — вернуться обратно.
Для создания файла, содержащего в себе информацию о расположении меток
@@ -267,7 +276,7 @@
:set tags=TAGFILE
--- 11. Файл настроек vimrc
+- 11. Файл настроек vimrc
При запуске редактор считывает настройки, сохранённые в файле ''~/.vimrc''. Те же команды можно установить для текущей сессии vim в командном режиме после двоеточния (Пример: ``:set nu``)
@@ -275,21 +284,21 @@
Пример:
-``set nu`` - включает нумерацию строк vim;
+``set nu`` — включает нумерацию строк vim;
-``set nonu`` - выключает нумерацию;
+``set nonu`` — выключает нумерацию;
-``set hls`` - highlight search, подсвечивает искомые слова;
+``set hls`` — highlight search, подсвечивает искомые слова;
-``set ic`` - ignore case, игнорирует регистр букв при поиске;
+``set ic`` — ignore case, игнорирует регистр букв при поиске;
-``syntax on`` - включает подсветку синтаксиса.
+``syntax on`` — включает подсветку синтаксиса.
--- 12. Полезные дополнения vimrc
+- 12. Полезные дополнения vimrc
Работа с файлами в windows(cp1251) кодировке
-===
+==={vim}
set fileencodings=cp1251,utf-8
if has("x11") == 0
set enc=cp1251
@@ -298,7 +307,7 @@
Добавление привычных комбинаций ``'''<ctrl>'''+c``, ``'''ctrl'''+v``, ``'''ctrl'''+a``
-===
+==={vim}
function! CopyAll()
let n = line('.')
normal gg"+yG
@@ -313,12 +322,33 @@
Мэппинг русских клавиш, для того чтобы не приходилось переключать раскладку для командного режима.
+==={vim}
+
+"russian keys support
+set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,фa,ыs,вd,аf,пg,рh,оj,лk,дl,яz,чx,сc
+set langmap+=мv,иb,тn,ьm,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,ЗP,ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK
+set langmap+=ДL,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,х[,Х{,ъ],ж\\;,Ж:,э',Э\\",б\\,,Б<,ю.,Ю>,Ё~
+
===
-.LP
-set langmap=йq ,цw ,уe ,кr ,еt ,нy ,гu ,шi ,щo ,зp ,фa ,ыs ,вd ,аf,пg ,рh ,оj ,лk ,дl ,яz ,чx ,сc ,мv ,иb ,тn ,ьm ,ЙQ ,ЦW ,УE ,КR ,ЕT ,НY ,ГU ,ШI ,ЩO ,ЗP ,ФA ,ЫS ,ВD ,АF ,ПG ,РH ,ОJ ,ЛK ,ДL ,ЯZ ,ЧX ,СC ,МV ,ИB ,ТN ,ЬM ,х[[ ,Х{ ,ъ]] ,ж\\; ,Ж: ,э' ,Э\\" ,б\\, ,Б< ,ю. ,Ю>
+
+Nazi-режим, с помощью которого можно бороться за чистоту кода.
+Подсвечивает лишние пробелы в конце строк.
+
+==={vim}
+
+function HlSpaces()
+ highlight ExtraWhitespace ctermbg=red guibg=red
+ "autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
+ au BufWinEnter * match ExtraWhitespace /\s\+$/
+ au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
+ au InsertLeave * match ExtraWhitespace /\s\+$/
+endfunction
+
+au FileType c call HlSpaces()
+
===
--- 13. Плагины
+- 13. Плагины
Для упрощения работы в VIM в интернете можно найти множество плагинов.
Их установка довольно проста (обычно нужно просто поместить файлы в папку '''~/.vim/''').
@@ -343,7 +373,7 @@
Плагин отображает дерево каталогов начиная с выбранного корня.
Довольно удобно для просмотра больших проектов.
--- 14. Используемые источники
+- 14. Используемые источники
%R(