- Vim (Русский)
- Contents
- Установка
- Использование
- Настройка
- Буфер обмена
- Подсветка синтаксиса
- Отступы
- Визуальный перенос
- Использование мыши
- Переход на новую строку с помощью клавиш со стрелками
- Объединение файлов
- Советы и рекомендации
- Нумерация строк
- Проверка орфографии
- Сохранение позиции курсора
- Запуск Vim по команде vi
- Возврат каретки DOS/Windows
- Пустое пространство в нижней части окон gVim
- Плагины
- Установка
- Используя встроенную систему управления пакетами
- Используя менеджер плагинов
- Из репозиториев Arch
- cscope
- Taglist
- Основные команды текстового редактора VI / VIM
- Основные режимы работы.
- Перемещение по файлу
- Ввод текста
- Удаление и вставка
- Отмена изменений
- Поиск
- Выход
- Справка
- Шпаргалка по Vim
- Общее
- Перемещение курсора
- Режим вставки — вставка/добавление текста
- Редактирование
- Выделение текста (визуальный режим)
- Визуальные команды
- Регистры
- Метки
- Макросы
- Вырезать и вставить
- Выход и сохранение
- Поиск и замена
- Поиск в нескольких файлах
- Сворачивание
Vim (Русский)
Vim — консольный текстовый редактор, являющийся расширенной версией vi с дополнительными функциями, которые включают в себя: подсветку синтаксиса, полноценную систему помощи, встроенную поддержку скриптов (vimscript), визуальный режим для простоты выделения и сравнение файлов (vimdiff).
Contents
Установка
Установите один из следующих пакетов:
- vim — с поддержкой Python 2/3, Lua, Ruby и Perl, но без поддержки GTK/X.
- gvim — идентичен vim , но c поддержкой GTK/X.
Использование
Также вы можете запустить vimtutor (для версии с интерфейсом командной строки) или gvimtutor (для версии с графическим интерфейсом) для отображения руководства по использованию Vim.
Vim включает в себя широкую справочную систему, доступ к которой можно получить посредством :h субъект . Субъекты включают в себя команды, опции, горячие клавиши, плагины и так далее. Используйте команду :h (без какого-либо субъекта), чтобы полчуить информацию о вспомогательной системе и о том, как перемещаться между субъектами.
Настройка
Файл конфигурации Vim для конкретного пользователя расположен в домашней директории —
/.vimrc , файлы текущего пользователя в
/.vim/ . Общий файл конфигурации —
/.vimrc , а общие файлы находятся в /usr/share/vim/ .
/.vimrc . Добавьте let skip_defaults_vim=1 в /etc/vimrc для полного отключения загрузки defaults.vim . [1]
Буфер обмена
Такие команды Vim как :yank или :paste работают с безымянным регистром, который по умолчанию соответствует регистру «* . Если доступна +clipboard , то регистр «* отображается в PRIMARY буфер в X.
Чтобы изменить стандартный регистр на «+ , используйте :set clipboard=unnamedplus . Регистр «+ соответствует CLIPBOARD буферу в X.
Для более подробной информации смотрите :help ‘clipboard’ .
Подсветка синтаксиса
Чтобы включить подсветку синтаксиса для многих языков программирования:
Отступы
Отступы для определенного типа файла:
Визуальный перенос
Опция wrap (включена по умолчанию) указывает Vim переносить длинные строки, которые не помещаются на экран, так, что оставшаяся часть строки отображается на следующей линии. Опция wrap влияет только на отображение текста, сам текст при этом не изменяется.
Изначально перенос строки происходит ровно в том месте, где размещается последний ее символ, поместившийся на экране, даже если он находится в середине слова. Для более умного переноса используйте опцию linebreak . Когда эта опция включена командой set linebreak , перенос строки происходит только после символов, которые перечислены в опции breakat , которая по умолчанию содержит в себе пробел и некоторые знаки препинания (смотрите :help breakat ).
Остаток строки обычно начинается с начала следующей линии, без всякого отступа. Опция breakindent сообщает Vim, что необходимо отображать перенесенный остаток строки с отступом, так, что на всех последующих линиях перенесенные части строки имеют тот же отступ, что и начало этой строки. Поведение breakindent может быть настроено при помощи опции breakindentopt . Например, для файлов исходного кода на языке Python может быть полезно добавлять дополнительный отступ в 4 пробела для перенесенных частей длинной строки (подробнее смотрите в :help breakindentopt ):
Использование мыши
Vim позволяет пользоваться мышью, но только в тех терминалах, которые это поддерживают:
Чтобы включить поддержку мыши, добавьте в
Опция mouse=a устанавливается в defaults.vim
Переход на новую строку с помощью клавиш со стрелками
По умолчанию, при нажатии ← в начале строки или → в конце, курсор не переводится на следующую/предыдущую строку.
Это можно исправить с помощью добавления строки set whichwrap=b,s, ,[,] в ваш файл
Объединение файлов
Vim включает в себя diff-редактор (программа, которая отображает различия между двумя файлами и позволяет удобно их объединять). Используйте vimdiff для этого — просто укажите ей пару файлов: vimdiff файл1 файл2 . Ниже приведен список команд vimdiff.
Действие | Горячая клавиша |
---|---|
следующие изменение | ]c |
предыдущее изменение | [c |
diff obtain | do |
diff put | dp |
развернуть блок | zo |
свернуть блок | zc |
перечитать файлы | :diffupdate |
переключить окна | Ctrl+w+w |
Советы и рекомендации
Нумерация строк
Чтобы включить отображение номера столбца, используйте :set number . По умолчанию показываются абсолютные значения номеров строк, относительные включаются посредством :set relativenumber .
Переход к новой строке осуществляется посредством :line number или line numbergg . Все переходы запоминаются в лист переходов, для более подробной информации смотрите :h jump-motions .
Проверка орфографии
Проверку орфографии в Vim можно включить с помощью:
По умолчанию установлен только английский словарь. Другие словари можно найти в официальных репозиториях по запросу vim-spell . Еще больше словарей можно найти в FTP-архиве Vim. Словари необходимо поместить в каталог для словарей —
/.vim/spell/ . Включить словарь можно командой :setlocal spell spelllang=ru_yo (заменив ru_yo на имя нужного словаря).
Действие | Команда |
---|---|
следующая ошибка | ]s |
предыдущая ошибка | [s |
предложения для исправления | z= |
добавить правильное написание | zg |
добавить правильное написание (на сеанс) | zG |
добавить неправильное написание | zw |
добавить неправильное написание (на сеанс) | zW |
повторить проверку орфографии во всем файле | :spellr |
/.vimrc или /etc/vimrc и перезапустите Vim.
Вы можете включить проверку орфографии для конкретных типов файлов (например .txt), используя плагин FileType и собственное правило для определения типа файла. Чтобы включить проверку орфографии для всех файлов, оканчивающихся на .txt, создайте файл /usr/share/vim/vimfiles/ftdetect/plaintext.vim и вставьте туда строку: autocmd BufRead,BufNewFile *.txt setfiletype plaintext . Далее, вставьте строку autocmd FileType plaintext setlocal spell spelllang=ru в файл
/.vimrc или /etc/vimrc и перезапустите Vim. Или поместите строку autocmd BufRead,BufNewFile *.txt setlocal spell в
/.vimrc или /etc/vimrc и перезапустите Vim. Не забудьте отредактировать строчку (specifically *.txt ), чтобы включить соответствующие типы файлов для проверки орфографии.
Чтобы включить проверку орфографии только для документов LaTeX (или TeX), добавьте autocmd FileType tex setlocal spell spelllang=ru в файл
/.vimrc или /etc/vimrc и перезапустите Vim.
Сохранение позиции курсора
Если вы хотите, чтобы курсор возвращался в прежнее положение после открытия файла, добавьте следующее в
Запуск Vim по команде vi
Создайте псевдоним для vi на vim .
Если вы хотите, чтобы при вводе sudo vi запускался vim , то установите пакет vi-vim-symlink AUR , который удалит vi и заменить его символической ссылкой на vim .
Возврат каретки DOS/Windows
Если вы видите последовательность ^M в конце каждой линии, это означает, что вы редактируете текстовый файл, который был создан в MS-DOS или Windows. Дело в том, что в Linux для переноса принято использовать один символ новой строки (LR), тогда как в системах Windows/MS DOS для той же цели используется последовательность из двух символов: возврата каретки (CR) и новой строки (LR). Как раз эти символы возврата каретки и отображаются в виде ^M .
Для удаления всех символов возврата каретки из файла, выполните:
Обратите внимание, что ^ здесь — управляющий символ, а не обычный. Чтобы ввести управляющую последовательность ^M , нажмите Ctrl+v,Ctrl+m .
Также вы можете просто установить пакет dos2unix и исправлять файлы командой dos2unix файл .
Пустое пространство в нижней части окон gVim
Когда используется оконный менеджер, настроенный на игнорирование размеров окна, gVim заполняет неиспользованные области окна стандартным фоновым цветом темы GTK.
Решение заключается в регулировании количества места, которое будет резервировать в нижней части окна gVim. Поместите следующую строку в
Плагины
Плагины могут помочь повысить эффективность вашей работы в Vim. Они могут менять интерфейс Vim, добавлять новые команды, поддержку завершения кода, интеграцию других программ и утилит с Vim, поддержку дополнительных языков и многое другое.
Установка
Используя встроенную систему управления пакетами
В Vim 8 добавлена возможность загрузки сторонних плагинов. Чтобы использовать эту функциональность, переместите плагины в
Используя менеджер плагинов
Менеджер плагинов позволяет устанавливать плагины и управлять ими одинаковым образом независимо от того, на какой системе вы запускаете Vim. Он представляет собой специальный плагин, который выполняет роль пакетного менеджера для других плагинов.
- Vundle — в настоящее время наиболее популярный менеджер плагинов Vim.
- Vim-plug — минималистичный менеджер плагинов для Vim, который имеет много особенностей, например, загрузка плагинов по запросу и параллельное обновление.
- pathogen.vim — простой плагин для управления переменной runtimepath.
- Dein.vim — менеджер плагинов, заменяющий NeoBundle, доступен как vim-dein-gitAUR .
Из репозиториев Arch
Группа vim-plugins объединяет множество разнообразных плагинов. Используйте команду pacman -Sg vim-plugins для отображения списка пакетов, которые вы можете затем установить, используя pacman.
cscope
Cscope является инструментом для навигации по программному проекту. Путем перехода к слову/символу/функции и вызову cscope (обычно с помощью горячих клавиш) можно найти: функции, которые вызывают данную, определение функции и многое другое.
Скопируйте стандартный файл cscope, который Vim будет автоматически читать:
/.vim/plugin/cscope_maps.vim , чтобы включить горячие клавиши cscope в Vim 7.x:
Создайте файл, который содержит список файлов для индексации (cscope может обрабатывать множество языков, но для примера мы возьмем файлы на Си/Си++ с расширениями .c, .cpp и .h):
Создание файлы базы данных, которые cscope будет читать:
Горячие клавиши по умолчанию:
Не стесняйтесь изменять горячие клавиши:
Taglist
Taglist отображает структуру файлов исходного кода и позволяет эффективно просматривать исходники на различных языках программирования.
Источник
Основные команды текстового редактора VI / VIM
Текстовый редактор vim, созданный на основе более старого vi. Один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. По умолчанию входит в состав любого дистрибутива Linux.
Открываем файл с помощью vi / vim:
Основные режимы работы.
«Обычный режим» — перемещение по файлу, стирание текста и другие редактирующие функции. Это — основной режим, только из него можно сразу перейти в другие режимы. Для возврата в основной режим из любого другого режима:
«Режим ввода» — ввод текста. Как только завершается ввод текста, принято сразу возвращаться в обычный режим. Заметьте, что стирание и ввод текста происходит в двух разных режимах. Переход в него из обычного режима:
«Командный режим» — Команды (операции с файлом, поиск и замена, настройка редактора…). Переход в него из обычного режима:
«Режим поиска» — ввод поискового запроса. Переход в него из обычного режима
«Визуальный режим» — режим выделения текста:
Перемещение по файлу
После загрузки Vim, на экране вы увидите часть загруженного вами текстового файла. Загрузившись, Vim находится в «командном режиме» — один из основных режимов. Это значит, что если вы нажмете клавишу (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vim, а не как помещаемые в текст символы. Команды перемещения — один из наиболее важных типов команд. Вот некоторые из них:
Ввод текста
Следующие команды переводят редактор в режим ввода:
Удаление и вставка
Ниже перечислены основные комманды удаления и вставки текста:
Отмена изменений
Поиск
Перейти на строку:
Выход
Есть еще пара команд, которые вам необходимо знать:
В этой статье описаны основные возможности, необходимые для работы. Практически во все дистрибутивы Linux входит учебник по работе с редактором, — просто введите в командной строке команду vimtutor.
Справка
Для вызова справки (помощи) о редакторе введите в терминале команду:
Источник
Шпаргалка по Vim
Общее
- :help keyword — открыть помощь по ключевому слову
- 😮 file — открыть file
- :sav file — сохранить весь текщий буфер как file
- :close — закрыть текущую панель
- K — открыть справочное руководство для слова под курсором
Перемещение курсора
- h — передвинуть курсор влево
- j — передвинуть курсор на одну фактическую строку вниз
- k — передвинуть курсор на одну фактическую строку вверх
- l — передвинуть курсор вправо
- gj — передвинуть курсор на одну видимую строку вниз
- gk — передвинуть курсор на одну видимую строку вверх
- H — переместиться к началу экрана
- M — переместиться к середине экрана
- L — переместиться к концу экрана
- w — переместиться вперед на начало слова
- W — переместиться вперед на начало слова (слово может содержать пунктуацию)
- e — переместиться вперед на конец слова
- E — переместиться вперед на конец слова (слово может содержать пунктуацию)
- b — переместиться назад на начало слова
- B — переместиться назад на начало слова (слово может содержать пунктуацию)
- % — переместиться к парному символу (по умолчанию поддерживаются: ‘()’, ‘<>‘, ‘[]’ — подробнее по команде :h matchpairs в vim)
- 0 — переместиться на начало строки
- ^ — переместиться на первый непробельный символ строки
- $ — переместиться на конец строки
- g_ — переместиться к последнему непустому символу в строке
- gg — переместиться на первую строку документа
- G — переместиться на последнюю строку документа
- 5G — переместить на пятую строку
- fx — переместиться к следующему вхождению символа x в текущей строке
- tx — установить курсор за следующим вхождением символа x в строке
- Fx — переместиться на предыдущее вхождение символа x в текущей строке
- Tx — установить курсор за предыдущим вхождением символа x в строке
- ; — повторить предыдущее f, t, F или T перемещение
- , — повторить предыдущее f, t, F или T перемещение, в обратном направлении
- > — переместиться к следующему параграфу (или функции/блоку при редактировании кода)
- < - переместиться к предыдущему параграфу (или функции/блоку при редактировании кода)
- zz — сдвинуть весь буфер по вертикали вместе с курсором, так чтобы курсор оказался в центре
- Ctrl + b — переместиться назад на целый экран
- Ctrl + f — переместиться вперед на целый экран
- Ctrl + d — переместиться вперед на половину экрана
- Ctrl + u — переместиться назад на половину экрана
Режим вставки — вставка/добавление текста
- i — вставка перед курсором
- I — вставка в начало строки
- a — вставка (добавление) после курсора
- A — вставка (добавление) в конец строки
- o — добавление новой строки под текущей
- O — добавление новой строки над текущей
- ea — вставка (добавление) после конца слова
- Esc — выход из режима вставки
Редактирование
- r — заменить один символ
- J — присоединить нижнюю строку к текущей
- cc — заменить всю строку
- cw — заменить всё текущее слово
- c$ — заменить до конца строки
- s — удалить символ и заменить текст
- S — удалить строку и заменить текст (то же что cc)
- xp — переставить две буквы (удалить и вставить)
- u — отменить
- Ctrl + r — применить последнее отменённое изменение
- . — повторить последнюю команду
Выделение текста (визуальный режим)
- v — включить режим выделения текста, выделить строки, затем выполнить команду (например, y-копирование)
- V — включить построчный режим выделения
- o — переместиться на другой конец выделенной области
- Ctrl + v — включить режим выделения блоков
- O — переместить на другой угол блока
- aw — выделить слово
- ab — блок в ()
- aB — блок в <>
- ib — внутренний блок в ()
- iB — внутренний блок в <>
- Esc — выйти из режима выделения текста
Визуальные команды
- > — сместить текст вправо
- — сместить текст влево
- y — скопировать выделенный текст
- d — удалить выделенный текст
Регистры
- :reg — показать содержимое регистров
- «xy — поместить содержимое в регистр x
- «xp — вставить содержимое регистра x
/.viminfo, и будет восстановлено при следующем запуске vim.
Метки
- :marks — список меток
- ma — установить метку A на текущей позиции
- `a — переместиться к метке A
- y`a — скопировать до метки A
Макросы
- qa — записать макрос A
- q — остановить запись макроса
- @a — run macro a
- @@ — выполнить последний макрос
Вырезать и вставить
- yy — скопировать строку
- 2yy — скопировать 2 строки
- yw — скопировать слово
- y$ — скопировать до конца строки
- p — вставить буфер обмена после курсора
- P — вставить буфер обмена перед курсором
- dd — удалить (вырезать) строку
- 2dd — удалить (вырезать) 2 строки
- dw — удалить (вырезать) слово
- D — удалить (вырезать) до конца строки
- d$ — удалить (вырезать) до конца строки
- x — удалить (вырезать) символ
Выход и сохранение
- :w — сохранить файл, но не выходить
- :w !sudo tee % — сохранить файл с sudo
- :wq либо 😡 либо ZZ — сохранить файл и выйти
- :q — выйти (терпит неудачу в случае несохраненных изменений)
- :q! либо ZQ — выйти и потерять несохраненные изменения
Поиск и замена
- /pattern — поиск шаблона
- ?pattern — обратный поиск шаблона
- \vpattern — ‘very magic’ режим: все не алфавитно-цифровые символы интерпретируются как специальные (экранирование не требуется)
- n — повторить поиск в том же направлении
- N — повторить поиск в обратном направлении
- :%s/old/new/g — заменить все вхождения шаблона в файл на указанное значение
- :%s/old/new/gc — заменить все вхождения шаблона в файл на указанное значение с подтверждением
- :noh — отключить подсвечивание результатов поиска
Поиск в нескольких файлах
- :vimgrep /pattern/
— поиск по шаблону в нескольких файлах
- :cn — переместиться к следующему совпадению
- :cp — переместиться к предыдущему совпадению
- :copen — открыть окно со списком результатов
Сворачивание
- zf#j — создает свертку от текущей позиции до # строк вниз
- zf/подстрока — создает свертку от текущей позиции и до первой найденной подстроки
- v/V и zf — выделение блока и создание свертки
Команды для управления:
После закрытия Vim все свертки забываются, для сохранения сверток в открытом файле используется команда :mkview , для загрузки — :loadview (подробнее).
Источник