English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

vi/vim в Linux

Linux справочник

Все Unix-подобные системы имеют встроенный редактор vi, другие текстовые редакторы могут не быть обязательными.

Но в настоящее время мы используем больше vim редактора.

Vim имеет функцию программного редактирования и может активно отличать правильность синтаксиса цветом шрифта, что удобно для программирования.Соответствующие статьи:

Полное руководство по клавишам Vim - от начинающего до продвинутого

Что такое vim?

Vim - это текстовый редактор, который развился из vi. У него есть множество удобных функций для программирования, таких как автозаполнение кода, компиляция и переход к ошибкам, и он широко используется программистами.

Просто говоря, vi - это старый текстовый процессор, но функции уже очень полные, но все еще есть места для улучшения. Vim можно сказать, что это очень полезный инструмент для разработчиков.http://www.vim.org) Сам vim также говорит, что это программа для разработки, а не текстовый процессор.

Схема клавиатуры Vim:

Использование vi/vim

В принципе, vi/vim делятся на три режима,分别是Режим команд (Command mode),Режим ввода (Insert mode)иРежим нижней строки (Last line mode). Эти три режима выполняют следующие функции:

Режим команд:

Пользователь только что запустил vi/vim и сразу перешел в режим команд.

В этом состоянии действия на клавиатуре будут распознаваться Vim как команды, а не как ввод символов. Например, если мы нажмем 'i', символ не будет введен, 'i' будет распознан как команда.

Вот несколько常用的 команд:

  • i Перейдите в режим ввода, чтобы ввести символ.

  • x Удаление символа в当前位置 курсора

  • : Перейдите в режим нижней строки, чтобы ввести команду в нижней строке.

Если нужно редактировать текст: запустите Vim, перейдите в режим команд, нажмите 'i', чтобы перейти в режим ввода.

Режим команд имеет только несколько最基本的 команд, поэтому для ввода более сложных команд все еще нужно использовать режим нижней строки.

Режим ввода

В режиме команд pressing 'i' переходит в режим ввода.

В режиме ввода можно использовать следующие клавиши:

  • Клавиши символов и комбинации с ShiftВвод символа

  • ENTERВвод строки, переброс на новую строку

  • BACK SPACEУдаление символа, удаление предыдущего символа перед курсором

  • DELУдаление символа, удаление следующего символа после курсора

  • Клавиши направленияПеремещение курсора в тексте

  • HOME/ENDПеремещение курсора в начало/конец строки

  • Page Up/Page DownПерелистывание страниц

  • Вставкапереключить курсор в режим ввода/замены, курсор станет вертикальной линией/подчеркиванием

  • ESCвыйти из режима ввода, перейти в режим командной строки

Режим командной строки

Нажмите: (английская запятая) для входа в режим командной строки.

Режим командной строки позволяет вводить один или несколько символов команд, и доступно множество команд.

В режиме командной строки основные команды имеют (с пробелом):

  • q выйдет из программы

  • w сохраняет файл

Нажмите клавишу ESC, чтобы随时 выйти из режима командной строки.

Коротко говоря, мы можем представить эти три режима как иконки внизу:

Пример использования vi/vim

Используйте vi/vim для перехода в общий режим

Если вы хотите использовать vi для создания файла с именем w3codebox.txt, вы можете сделать это так:

$ vim w3codebox.txt

Прямо введите Имя файла vi Таким образом, вы можете перейти в общий режим vi. Пожалуйста, обратите внимание, что после vi一定要加文件名, независимо от того, существует ли этот файл или нет!

Нажмите i, чтобы перейти в режим ввода (также известный как режим редактирования), чтобы начать редактирование текста

В общем режиме, просто нажмите i, o, a и т.д., чтобы перейти в режим ввода!

Во время редактирования вы можете увидеть, что в левом нижнем углу панели состояния中出现 –INSERT- это提示, что можно вводить любые символы.

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

Нажмите кнопку ESC, чтобы вернуться в общий режим

Хорошо, предположим, что я уже редактировал его по этому образцу, так как я должен выйти? Да! Да! Это просто нажать Esc Эта кнопка! Вскоре вы обнаружите, что в левом нижнем углу экрана исчезло – INSERT –!

В общем режиме нажмите :wq Сохраните и покиньте vi

OK, мы собираемся сохранять, просто сохраните и покиньте, команда очень проста, введите :wq Сохраните и покиньте!

OK! Таким образом, мы успешно создали файл w3codebox.txt.

Описание клавиш vi/vim

Кроме того, i, Esc, :wq в простых примерах, на самом деле vim имеет очень много клавиш, которые можно использовать.

Часть 1: В общем режиме доступны перемещение курсора, копирование, вставка, поиск и замена и т.д.

Способы перемещения курсора
h или клавиша стрелки влево (←)Курсор смещается на один символ влево
j или клавиша стрелки вниз (↓)Курсор смещается на один символ вниз
k или клавиша стрелки вверх (↑)Курсор смещается на один символ вверх
l или клавиша стрелки вправо (→)Курсор смещается на один символ вправо
Если вы положите правую руку на клавиатуру, вы обнаружите, что hjkl расположены рядом, поэтому можно использовать эти четыре кнопки для перемещения курсора. Если нужно выполнить несколько перемещений, например, переместить вниз на 30 строк, можно использовать комбинацию клавиш «30j» или «30↓». То есть, добавьте количество повторений (число) и нажмите действие!
[Ctrl] + [f]Экран «вниз» перемещается на страницу, эквивалентно клавише [Page Down] (часто используемый)
[Ctrl] + [b]Экран «вверх» перемещается на страницу, эквивалентно клавише [Page Up] (часто используемый)
[Ctrl] + [d]Экран «вниз» перемещается на половину страницы
[Ctrl] + [u]Экран «вверх» перемещается на половину страницы
+Курсор перемещается к строке с следующим символом, не являющимся пробелом
-Курсор перемещается к строке с предыдущим символом, не являющимся пробелом
n<space>Эта n означает «число», например, 20. Нажмите число, а затем клавишу пробела, и курсор переместится вправо на n символов в строке. символов. Например, 20<space> переместит курсор на 20 символов вправо.
0 или функциональная клавиша [Home]Это цифра «0»: перемещается к началу строки (часто используемый)
$ или функциональная клавиша [End]Перемещается к последнему символу строки (чаще всего)
HКурсор перемещается к первому символу первой строки экрана
MКурсор перемещается к первому символу средней строки экрана
LКурсор перемещается к первому символу последней строки экрана
GПеремещается к последней строке файла (чаще всего)
nGn — цифра. Перемещается к nth строке файла. Например, 20G переместится к 20 строке файла строка (можно использовать с :set nu)
ggПеремещается к первой строке файла, что эквивалентно 1G! (часто используемый)
n<Enter>n — цифра. Курсор перемещается вниз на n строк (чаще всего)
поиск и замена
/wordискать строку с именем word, расположенную под курсором. Например, чтобы найти vbird в файле Эта строка, просто введите /vbird! (часто используемый)
?wordискать строку с именем word, расположенную над курсором.
nЭта n — английская клавиша. Она означает повтор выполнения предыдущего поиска. Например, Если мы только что выполняли /vbird для поиска в сторону vbird, то после нажатия n продолжится搜寻下一个 vbird. для строки. Если выполняется ?vbird, то нажатие n продолжит搜寻名称 vbird.
NЭта N — английская клавиша. Она противостоит n и означает «назад» для выполнения предыдущего поиска. Например, после /vbird, нажатие N означает «вверх» для поиска vbird.
Использование /word вместе с n и N очень полезно! Это позволяет повторно находить некоторые ключевые слова, которые вы искали!
:n1,n2s/word1/word2/gn1 и n2 являются числами. Искать word1 строку между n1 и n2 строками, и заменить эту строку на word2 ! Например, если искать vbird и заменить на VBIRD в строках с 100 до 200, то:
『:100,200s/vbird/VBIRD/g』 (часто используемый)
:1,$s/word1/word2/g или :%s/word1/word2/gИскать word1 строку с первого до последнего строки, и заменить эту строку на word2 ! (часто используемый)
:1,$s/word1/word2/gc или :%s/word1/word2/gcИскать word1 строку с первого до последнего строки, и заменить эту строку на word2 ! и отображает提示 символ для пользователя для подтверждения (подтверждение) Нужно ли заменить?! (часто используемый)
Удаление, копирование и вставка
x, XВ строке x удаляет один символ назад (аналогичен [del] клавише) X удаляет один символ вперед (аналогичен [backspace], то есть клавише обратного удаления) (часто используемый)
nxn является числом, удаляет向后 n символов. Например, если нужно удалить 10 символов, 『10x』
ddУдаляет целую строку под курсором (часто используемый)
nddn является числом. Удаляет向下 n строк, например, 20dd удаляет 20 строк (часто используемый)
d1GУдаляет символ под курсором до первой строки
dGУдаляет символ под курсором до последней строки
d$Удаляет символ под курсором до конца строки
d0Это число 0, удаляет символ под курсором до начала строки
yyКопирует строку под курсором (часто используемый)
nyyn является числом. Копирует向下 n строк, например, 20yy копирует 20 Строка (часто используемый)
y1GКопирует строку под курсором до первой строки
yGКопирует строку под курсором до последней строки
y0Копирует символ под курсором до начала строки
y$Копирует символ под курсором до конца строки
p, Pp вставляет скопированные данные под курсором, а P вставляет их над курсором! Например, я目前在 20 строке и уже скопировал 10 строк данных. Нажав p, 10 строк данных будут добавлены после最初的 20 строк, то есть с 21 строки. Но что если нажать P? Таким образом,原本的第 20 строка будет сдвинута и станет 30 строкой. (часто используемый)
JОбъединить данные строки курсора и строки под курсором в одну строку
cПовторное удаление нескольких данных, например,向下删除 10 строк, [10cj]
uВосстановить предыдущее действие (обычно)
[Ctrl]+rПовторить предыдущее действие (обычно)
Эта команда u и [Ctrl]+r очень часто используются! Одна для восстановления, другая для повторения. Используя эти две функциональные клавиши, ваше редактирование,嘿嘿!очень весело!
.Не怀疑!Это точка! Это означает повторение предыдущего действия. Если вы хотите повторить удаление, повторное粘贴 и т.д., просто нажмите точку «.».! (часто используемый)

Вторая часть: Описание доступных кнопок для переключения из обычного режима в режим редактирования

Войти в режим ввода или замены
i, IВойти в режим ввода (Insert mode):
i — начать ввод в当前位置, I — начать ввод с первого не пробельного символа в текущей строке. (часто используемый)
a, AВойти в режим ввода (Insert mode):
a — начать ввод с следующего символа курсора, A Это означает «ввести с конца текущей строки» (обычно)
o, OВойти в режим ввода (Insert mode):
Это大小写英文字母 o. o — ввести новую строку под текущим курсором; O — ввести новую строку в верхнем регистре на месте текущего курсора (обычно)
r, RВойти в режим замены (Replace mode):
r заменит один символ под курсором один раз; R будет заменять текст под курсором до тех пор, пока не будет нажата До Esc; (обычно)
На этих клавишах, в левом нижнем углу экрана vi会出现「--INSERT--」или「--REPLACE--」. По названию понятно, что это за действие!! особенно важно помнить, что мы уже упоминали, что если вы хотите вводить символы в файле: Должно быть видимо INSERT или REPLACE в левом нижнем углу, чтобы можно было вводить данные!
[Esc]Выйти из режима редактирования и вернуться в обычный режим (обычно)

Третья часть: Описание доступных кнопок для переключения из обычного режима в режим командной строки

Инструкции по сохранению и выходу из режима командной строки
:wЗаписать измененные данные на жесткий диск (обычно)
:w!Если файл имеет атрибут «только чтение», принудительно写入 файл. Но能不能写入, это уже другой вопрос. Это все же связано с правами доступа к файлу!
:qВыход из vi (обычно)
:q!Если вы изменяли файл, но не хотите сохранять изменения, используйте ! для принудительного выхода без сохранения.
Внимание, что точка exclamatio (!) в vi часто имеет значение «принудительное».
:wqСохранить и выйти, если :wq! то это будет强制ное сохранение и выход (часто используемый)
ZZЭто большая буква Z! Если вы внесли изменения, сохраните текущий файл и затем выйдите! Эффект равен (сохранить и выйти)
ZQНе сохранять и强制 выйти. Эффект равен :q!
:w [filename]Сохранить редактируемое содержимое в другой файл (аналог сохранения в новый файл)
:r [filename]Включить данные другого файла в данные, которые редактируются. Иначе говоря, включить『filename』 Добавить содержимое этого файла в строку, на которой находится курсор
:n1,n2 w [filename]Сохранить содержимое с n1 по n2 в файл filename.
:! commandВременное离开 vi в режиме командной строки для выполнения результатов команды display! Например
『:! ls /home』позволяет увидеть информацию о файлах, выводимых командой ls в каталоге /home, в vi!
Изменение среды vim
:set nuОтображение номеров строк, после установки, номер строки будет отображаться перед каждой строкой
:set nonuНапротив set nu, чтобы отменить отображение номеров строк!

Особое внимание, в vi/vim числа имеют важное значение! Числа обычно означают повторение действия несколько раз! Или возможно, они указывают на номер某种 чего-то.

Например, чтобы удалить 50 строк, используется『50dd』, верно? Номер ставится перед действием, например, если я хочу перейти向下 на 20 строк, то это『20j』или『20↓』.