Vim mac os команды
/.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 либо :x либо 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 - открыть окно со списком результатов
Сворачивание
Команды для управления:
После закрытия Vim все свертки забываются, для сохранения сверток в открытом файле используется команда :mkview , для загрузки - :loadview (подробнее).
What You'll Be CreatingVim - мощный, бесплатный текстовый редактор, который предустановлен в вашем Маке. В этом туториале, я покажу основы этого текстового редактора.
Открываем файлы
Вы можете открыть файлы в Vim, как и в любом другом консольном редакторе.
Vim в терминале
Если файл, который вы хотите отредактировать называется life.md, введите в терминале
Vim откроется в этом терминале с загруженным файлом. Vim это консольная программа, а не программа с графическим интерфейсом.
Основы режимов Vim
В Vim есть четыре режима: Командный, Текстовый (иногда его называют режим вставки), Визуальный и режим командной строки. Текущий режим показывает своё название в нижнем левом углу статусной строки.
Когда вы запустите Vim, он находится в командном режиме Вы можете использовать все командные клавиши для навигации по файлу, а затем приступить к редактированию. Когда вы выходите из любого другого режима, Vim возвращается в командный режим.
Vim переключается в текстовый режим когда вы нажимаете a, A, i, I, o или O. Как только вы окажитесь в текстовом режиме, редактор будет находится в этом режиме, до тех пор пока вы не нажмёте кнопку Esc. Любая другая нажатая вами кнопка будет непосредственно вводиться в файл, в то место где в данный момент находится курсор.
Визуальный режим активируется когда вы используете v, V и Ctrl-v, команды в командном режиме. В Визуальном режиме вы можете выделить текст. В то время когда вы используете команды навигации область от того места где вы переключились в визуальный режим будет выделяться, до момента пока вы не покинете визуальный режим.
В любое время когда вы используете :command в командном режиме, вы окажитесь в режиме командной строки. В режиме командной строки вы можете выполнять мощные функции по редактированию, различные действия с файлами, а также вызывать функции шелла. Режим командной строки единственный режим, который ничего не отображает в статусной строке, но введённые команды, вместе с курсором, будут показываться под статусной строкой.
Сохраняем файлы и выходим из Vim
В командном режиме, вы можете нажать ZZ для того, чтобы сохранить все изменения и выйти. Также вы можете сохранить файл командой :w!, : переключит вас в режим командной строки, w сохранит файл и ! сохранит файл не задавая вопросов. Ещё вы можете ввести :wq или :wq!. q - выходит из редактора. Помимо этого можно воспользоваться :q!, для того чтобы выйти из редактора без сохранения.
Основные команды навигации
В командном режиме вы передвигаетесь по файлу и выполняете различные команды по редактированию. Кнопка h передвинет курсор влево. Кнопка l в свою очередь передвинет курсор вправо. Кнопка j передвинет курсор вниз на одну строку, когда кнопка k передвинет курсор на одну строку вверх. Чтобы переместится к следующему слову используйте кнопку w. Для перемещения к предыдущему слову используйте команду b.
Если вы хотите переместить курсор больше чем на одну позицию, слово или строку, одной командой, укажите число и после этого нужное вам направление. Курсор переместится в указанном направлении определённое количество раз, в зависимости от числа. К примеру, если набрать 10j, курсор переместится вниз на десять строк.
В командном режиме можно переключить нумерацию строк с абсолютной на относительную:
Для того чтобы включить абсолютную нумерацию строк введите команду :set number. Чтобы не показывать нумерацию строк используйте :set nonumber.
Относительная нумерация
Включить относительную нумерацию строк можно :set relativenumber. Чтобы вернуться к абсолютной нумерации достаточно набрать :set norelativenumber.
Относительная и Абсолютная нумерация
Установив :set number и :set relativenumber, ваш Vim будет показывать относительные номера строк, для всех строк, кроме текущей. Текущая строка будет показывать свой абсолютный номер.
Переключившись на относительную нумерацию, вы можете быстро увидеть количество строк для перемещения используя j или k команды. К примеру, чтобы переместится на строку с List, вы должны будите нажать 2j.
Чтобы попасть на начало строки используйте 0(это ноль) команду. На конец строки можно переместится после нажатия $ команды. Команда gg перемещает на начало файла, а команда G в конец файла.
Файл .vimrc
Вероятно вам захочется постоянно использовать относительную нумерацию строк, но это неудобно каждый раз переключатся на неё когда вы запускаете Vim. Именно в этом случае вам пригодится файл для конфигурации Vim. В терминале, находясь в домашней директории, введите
Файл .vimrc, файл для конфигурации Vim. Любая команда, которую вы можете использовать в режиме командной строки, может быть добавлена в этот файл, она будет включаться при каждом запуске Vim. Оказавшись в этом файле, используйте команду i, чтобы начать вводить текст. Теперь добавьте эти строки и сохраните файл:
Таким образом каждый раз открывая Vim в нем будет установлена смесь абсолютной и относительной нумерации строк, а также подсветка поиска. Подсветка поиска понадобится нам в следующем разделе. Файл .vimrc обладает множеством возможностей и настроек редактора, но их описание придётся отложить до следующего туториала.
Поиск и Замена
Вы можете искать интересующий вас текст используя команду / в командном режиме. Напечатав /This, вы увидите что все слова This подсвечиваются, в примере ниже.
Поиск
Нажав n, вы переместитесь к следующему вхождению поискового паттерна. Используя N, вы попадёте на предыдущее вхождение. Паттерн, который вы указываете после / может быть любым регулярным выражением. Почитайте статью Advanced search and Replace with RegEx для лучшего понимания принципов работы с регулярными выражениями.
Поиск и Замена
Для того, чтобы заменить текст вам придётся воспользоваться режимом командной строки. В режиме командной строки, команда s используется для замены текущей строки, %s для замены во всем файле и наконец <begin>, <end>, для замены от <begin> номера строки, до <end> номера строки.
Следующий формат /<search pattern>/<replace pattern>/gi в котором <search pattern> и <replace pattern> являются стандартными регулярными выражениями. В примере выше, я заменяю каждое вхождение слова This на That. Флаг i после g, делает поиск нечувствительным к регистру, в свою очередь I сделает поиск чувствительным к регистру. Флаг g делает замену глобальной. без этого флага замена выполнится лишь один раз, для строки.
Команды редактирования
Начать вводить текст слева от курсора, можно командой i. Команда a установит курсор для ввода текста справа, от текущего положения. Команда I служит для добавления текста в начало строки, а A для добавления текста в конец строки.
Команда o добавляет новую строку, после того места где находился курсор и переключается в текстовый режим в начале этой строки. O совершает аналогичные действия, но добавляет строку выше, положения курсора.
Для удаления символов, используйте команду d, после чего укажите направление в котором планируете удалять, или пробел, чтобы удалить символ находящийся под курсором. Если вы добавите к команде префикс с номером, Vim удалит соответствующее номеру количество символов в указанном направлении. Команда dd удалит текущую строку. D удаляет всё, начиная от положения курсора, до конца строки.
Команда x удалит символ под курсором. X удалит символ перед курсором. Обе команды x и X также возможны с использованием префикса с номером, для повторения удаления, определённое количество раз.
Копировать, Вырезать и Вставить
Когда вы нажимаете v в командном режиме, включается визуальный режим. Все передвижения курсора выделяют текст, с той позиции где был осуществлён переход в визуальный режим. Выделив нужный вам текст, нажмите команду y, после чего данный текст будет скопирован. Переместившись в новое место и нажав p скопированный текст добавится после курсора, P делает вставку перед курсором.
Выделив текст, команда x удалит этот текст. Команда d вырежет выделенный текст, в дальнейшем его можно вставить командой p.
Выделение блока
Выделять блоки текста можно после нажатия команды <ctrl>-v. Команда V включает визуальный режим, в котором выделяются строки целиком, а не отдельные символы.
Практика и ещё раз практика
Теперь когда вы познакомились с основными командами Vim, вам следует больше практиковаться. Vim Adventure отличный способ испытать команды Vim на практике. Это игра-приключение для прохождения, которой вам необходимо будет использовать различные команды Vim.
Simple Tutorials Vim Reference шпаргалка, которая поможет вам запомнить распространённые команды Vim. Но самое важное продолжайте работать с этим одновременно простым и мощным редактором и вы обязательно достигните мастерства в нем.
Текстовый редактор vim, созданный на основе более старого vi. Один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. По умолчанию входит в состав любого дистрибутива Linux.
Открываем файл с помощью vi / vim:
Основные режимы работы.
«Обычный режим» — перемещение по файлу, стирание текста и другие редактирующие функции. Это - основной режим, только из него можно сразу перейти в другие режимы. Для возврата в основной режим из любого другого режима:
«Режим ввода» - ввод текста. Как только завершается ввод текста, принято сразу возвращаться в обычный режим. Заметьте, что стирание и ввод текста происходит в двух разных режимах. Переход в него из обычного режима:
«Командный режим» - Команды (операции с файлом, поиск и замена, настройка редактора…). Переход в него из обычного режима:
«Режим поиска» - ввод поискового запроса. Переход в него из обычного режима
«Визуальный режим» - режим выделения текста:
Перемещение по файлу
После загрузки Vim, на экране вы увидите часть загруженного вами текстового файла. Загрузившись, Vim находится в «командном режиме» - один из основных режимов. Это значит, что если вы нажмете клавишу <l> (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vim, а не как помещаемые в текст символы. Команды перемещения - один из наиболее важных типов команд. Вот некоторые из них:
Ввод текста
Следующие команды переводят редактор в режим ввода:
Удаление и вставка
Ниже перечислены основные комманды удаления и вставки текста:
Отмена изменений
Поиск
Перейти на строку:
Выход
Есть еще пара команд, которые вам необходимо знать:
В этой статье описаны основные возможности, необходимые для работы. Практически во все дистрибутивы Linux входит учебник по работе с редактором, - просто введите в командной строке команду vimtutor.
Самое главное — побороть боязнь белого листа. Я всегда говорю это себе, когда нужно начать работу над чем-то и не знаешь, как подступиться. Так что я решил не ломать голову над тем, о чем будет первая запись в этом блоге, а просто выложить небольшую шпаргалку по текстовому редактору Vim.
Шпаргалка эта уже не первый месяц хранится у меня в
/txt/vim.txt. За это время я успел составить довольно объемный справочник по основным командам Vim. При желании вы можете начать свое обучение работе с Vim с этого поста.
/.vimrc
Можно редактировать файлы через сеть, например
:e <scp|ftp|ftps>://user@host/path/to/the/file.txt
:Ex или :e ./ - файловый менеджер
== Подсветка синтаксиса ==
:syntax on включить подсветку
:syntax off выключить подсветку (по умолчанию)
== Перенос строк ==
:set wrap разрешить word wrap (по умолчанию)
:set nowrap запретить word wrap
== Печать ==
:ha[rdcopy] распечатать документ
:set printoptions=duplex:off отключить двустороннюю печать
== Сворачивание ==
zc свернуть блок
zo развернуть блок
zM закрыть все блоки
zR открыть все блоки
za инвертирование
zf см :set foldmethod=manual
:set foldenable включить свoрачивание
:set foldmethod=syntax сворачивание на основе синтаксиса
:set foldmethod=indent сворачивание на основе отступов
:set foldmethod=manual выделяем участок с помощью v и говорим zf
:set foldmethod=marker сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока
== Маркеры ==
ma установить локальный маркер a
mB установить глобальный маркер B
`c перейти к локальному маркеру c
`0 вернуться на позицию, на которой закончили
работу при закрытии vim
:marks просмотр маркеров
set viminfo='1000,f1 маркеры пишутся в
/.viminfo, восстанавливаясь
при следующем запуске vim. маркер " хранит
последнюю позицию курсора в файле
== Сессии ==
mksession file.session сохранить текущую сессию
source file.session восстановить ранее сохраненную сессию
== Макросы ==
qa записать макрос с именем a
q в режиме записи макроса: закончить запись
@a выполнить макрос с именем a
@@ повторить последний макрос
== Регистры ==
"ayy скопировать строку в регистр a
"bdd вырезать строку и поместить в регистр b
"С2d вырезать три строки и дописать в конец
регистра C
:reg [name1][name2][. ] просмотреть содержимое регистров
== Выделение ==
v + hjkl выделение текста
SHIFT + v выделить строку
CTR + v выделение прямоугольника
p вставить
y копировать
d удалить
gu к нижнему регистру
gU к верхнему регистру
== Поиск по всему проекту ==
:vimgrep /EXPR/ **/*.c поиск по регулярному выражению
:copen показать все найденные места
:close скрыть все найденные места
:cn переход к следующему результату
:cp переход к предыдущему результату
== Нумерация строк ==
:set number включить нумерацию строк
:set nonumber отключить нумерацию строк
== Работа с окнами ==
:split горизонтальное разбиение
:vsplit вертикальное разбиение
Ctr+W, затем
с закрыть окно
+- изменение высоты текущего окна
<> изменение ширины текущего окна
= установить равный размер окон
hjkl или стрелочки перемещение между окнами
== Проверка орфографии ==
mkdir -p
:set spell spelllang=ru,en включить проверку орфографии
:set nospell выключить проверку орфографии
]s следующее слово с ошибкой
[s предыдущее слово с ошибкой
z= замена слова на альтернативу из списка
zg good word
zw wrong word
zG ignore word
== Другое ==
:set [no]wildmenu При авто-дополнении в командной строке над
ней выводятся возможные варианты
:set list Отображать табуляцию и переводы строк
q: История команд
. Повторение последней команды
Более подробный материал об использовании текстового редактора Vim вы найдете в книге Изучаем редакторы vi и Vim, 7-е издание. Книга доступна как в бумажном, так и в электронном формате.
На этом пока все. Думаю, я буду время от времени редактировать эту шпаргалку, так что следите за PS в конце следующих постов.
Читайте также: