Инструменты пользователя

Инструменты сайта


vim:cheat_sheet

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
vim:cheat_sheet [2023/12/04 17:53] – [Общее] so_v_avim:cheat_sheet [2026/09/08 07:51] (текущий) – so_v_a
Строка 1: Строка 1:
 +<!DOCTYPE markdown>
 +
 # Шпаргалка по Vim # Шпаргалка по Vim
 +
 ## Общее ## Общее
  
 +|Команда|Значение|
 +|:---|:---|
 | :help keyword |- открыть помощь по ключевому слову | | :help keyword |- открыть помощь по ключевому слову |
 | :o file |- открыть file | | :o file |- открыть file |
Строка 7: Строка 12:
 | :close |- закрыть текущую панель | | :close |- закрыть текущую панель |
 | K |- открыть справочное руководство для слова под курсором | | K |- открыть справочное руководство для слова под курсором |
 +
 +
 +### Выход и сохранение
 +
 +|Команда|Значение|
 +|:---|:---|
 +| :w |- сохранить файл, но не выходить |
 +| :w !sudo tee % |- сохранить файл с sudo |
 +| :wq либо :x либо ZZ |- сохранить файл и выйти |
 +| :q |- выйти (терпит неудачу в случае несохраненных изменений) |
 +| :q! либо ZQ |- выйти и потерять несохраненные изменения |
 +
 +
  
  
 ## Перемещение курсора ## Перемещение курсора
  
 +|Команда|Значение|
 +|:---|:---|
 | h |- передвинуть курсор влево | | h |- передвинуть курсор влево |
-| j |- передвинуть курсор на одну фактическую строку вниз | +| j |- передвинуть курсор **на одну фактическую строку вниз** | 
-| k |- передвинуть курсор на одну фактическую строку вверх |+| k |- передвинуть курсор **на одну фактическую строку вверх** |
 | l |- передвинуть курсор вправо | | l |- передвинуть курсор вправо |
-| gj |- передвинуть курсор на одну видимую строку вниз | +| gj |- передвинуть курсор **на одну видимую строку вниз** | 
-| gk |- передвинуть курсор на одну видимую строку вверх | +| gk |- передвинуть курсор **на одну видимую строку вверх** | 
-| H |- переместиться к началу экрана | +| H |- переместиться **к началу экрана** | 
-| M |- переместиться к середине экрана | +| M |- переместиться **к середине экрана** | 
-| L |- переместиться к концу экрана | +| L |- переместиться **к концу экрана** | 
-| w |- переместиться вперед на начало слова | +| w |- переместиться **вперед на начало слова** | 
-| e |- переместиться вперед на конец слова | +| e |- переместиться **вперед на конец слова** | 
-| b |- переместиться назад на начало слова | +| b |- переместиться **назад на начало слова** | 
-| % |- переместиться к парному символу (по умолчанию поддерживаются: '()', '{}', '[]' - подробнее по команде :h matchpairs в vim) | +| % |- переместиться **к парному символу** (по умолчанию поддерживаются: '()', '{}', '[]' - подробнее по команде :h matchpairs в vim) | 
-| 0 |- переместиться на начало строки | +| 0 |- переместиться **на начало строки** | 
-| $ |- переместиться на конец строки | +| $ |- переместиться **на конец строки** | 
-| gg |- переместиться на первую строку документа | +| gg |- переместиться **на первую строку документа** | 
-| G |- переместиться последнюю строку документа | +| G |- переместиться **на последнюю строку документа** | 
-| 5G |- переместить на пятую строку | +| 5G |- переместить **на пятую строку** (соответственно цифре) | 
-| } |- переместиться к следующему параграфу (или функции/блоку при редактировании кода) | +| } |- переместиться **к следующему параграфу** (или функции/блоку при редактировании кода) | 
-| { |- переместиться к предыдущему параграфу (или функции/блоку при редактировании кода) | +| { |- переместиться **к предыдущему параграфу** (или функции/блоку при редактировании кода) | 
-| Ctrl + b |- переместиться назад на целый экран | +| Ctrl + b |- переместиться **назад на целый экран** | 
-| Ctrl + f |- переместиться вперед на целый экран | +| Ctrl + f |- переместиться **вперед на целый экран** | 
-| Ctrl + d |- переместиться вперед на половину экрана | +| Ctrl + d |- переместиться **вперед на половину экрана** | 
-| Ctrl + u |- переместиться назад на половину экрана |+| Ctrl + u |- переместиться **назад на половину экрана** |
  
  
-Чтобы узнать номер строке, на которой в файле стоит курсор, нужно нажать Ctrl + g.  +Чтобы узнать номер строке, на которой в файле стоит курсор, и информацию о файле нужно нажать Ctrl + g.  
 Чтобы перейти на строку номер N нужно набрать номер соответствующей строки (N), а потом нажать Shift + g Чтобы перейти на строку номер N нужно набрать номер соответствующей строки (N), а потом нажать Shift + g
  
Строка 44: Строка 64:
 ## Режим вставки - вставка/добавление текста ## Режим вставки - вставка/добавление текста
  
 +|Команда|Значение|
 +|:---|:---|
 | i |- вставка перед курсором | | i |- вставка перед курсором |
 | I |- вставка в начало строки | | I |- вставка в начало строки |
Строка 52: Строка 74:
 | ea |- вставка (добавление) после конца слова | | ea |- вставка (добавление) после конца слова |
 | Esc |- выход из режима вставки | | Esc |- выход из режима вставки |
- 
- 
  
 ## Редактирование ## Редактирование
  
 +|Команда|Значение|
 +|:---|:---|
 | r |- заменить один символ | | r |- заменить один символ |
 +| R |- заменить более чем один символ |
 | J |- присоединить нижнюю строку к текущей | | J |- присоединить нижнюю строку к текущей |
 | cc |- заменить всю строку | | cc |- заменить всю строку |
Строка 68: Строка 91:
 | Ctrl + r |- применить последнее отменённое изменение | | Ctrl + r |- применить последнее отменённое изменение |
 | . |- повторить последнюю команду | | . |- повторить последнюю команду |
 +
 +
 ## Вырезать и вставить ## Вырезать и вставить
  
 +|Команда|Значение|
 +|:---|:---|
 | yy |- скопировать строку | | yy |- скопировать строку |
 | 2yy |- скопировать 2 строки | | 2yy |- скопировать 2 строки |
Строка 110: Строка 137:
  
 **Замечание!** Простое нажатие на символ объекта в обычном режиме (Normal mode) без предварительного оператора переместит курсор так, как указано в списке объектов. **Замечание!** Простое нажатие на символ объекта в обычном режиме (Normal mode) без предварительного оператора переместит курсор так, как указано в списке объектов.
 +
 +
 +## Выделение текста (визуальный режим)
 +
 +|Команда|Значение|
 +|:---|:---|
 +| v |- включить режим выделения текста, выделить строки, затем выполнить команду (например, y-копирование)|
 +| V |- включить построчный режим выделения |
 +| o |- переместиться на другой конец выделенной области |
 +| Ctrl + v |- включить режим выделения блоков |
 +| O |- переместить на другой угол блока |
 +| aw |- выделить слово |
 +| ab |- блок в () |
 +| aB |- блок в {} |
 +| ib |- внутренний блок в () |
 +| iB |- внутренний блок в {} |
 +| Esc |- выйти из режима выделения текста |
 +
 +
  
  
 ## Копирование/вставка из системного буфера обмена ## Копирование/вставка из системного буфера обмена
  
 +|Команда|Значение|
 +|:---|:---|
 | :set paste |- вход в режим вставки | | :set paste |- вход в режим вставки |
 | :set nopaste |- выход из режим вставки | | :set nopaste |- выход из режим вставки |
 | Ctrl+Shift+V |- вставить в файл, если в режиме вставки; Command+Shift+V для Mac | | Ctrl+Shift+V |- вставить в файл, если в режиме вставки; Command+Shift+V для Mac |
- 
- 
  
  
 ## Поиск и замена ## Поиск и замена
  
 +|Команда|Значение|
 +|:---|:---|
 | /pattern |- поиск шаблона | | /pattern |- поиск шаблона |
 | ?pattern |- обратный поиск шаблона | | ?pattern |- обратный поиск шаблона |
Строка 128: Строка 176:
 | n |- повторить поиск в том же направлении | | n |- повторить поиск в том же направлении |
 | N |- повторить поиск в обратном направлении | | N |- повторить поиск в обратном направлении |
-| :%s/old/new/g |- заменить все вхождения шаблона в файл на указанное значение | +| :#,#s/было/стало/g |-заменить все вхождения между двумя строками, где #,# -- номера этих строк | 
-| :%s/old/new/gc |- заменить все вхождения шаблона в файл на указанное значение с подтверждением |+| :%s/было/стало/g |- заменить все вхождения шаблона в файл на указанное значение | 
 +| :%s/было/стало/gc |- заменить все вхождения шаблона в файл на указанное значение с подтверждением |
 | :noh |- отключить подсвечивание результатов поиска | | :noh |- отключить подсвечивание результатов поиска |
 +
 +Включение некоторых параметров при поиске:
 +```
 +set XXX
 +```
 +где XXX может принимать значения: 
 +  * 'ic'   'ignorecase'   - игнорирование регистра при поиске
 +  * 'is'   'incsearch'    - отображение частичных совпадений при поиске
 +  * 'hls'  'hlsearch'     - подсветка всех совпадений при поиске
 +
 +Для отключения параметров следует добавить 'no' перед параметром:
 +```
 +:set noic
 +```
  
 ### Поиск в нескольких файлах ### Поиск в нескольких файлах
  
 +|Команда|Значение|
 +|:---|:---|
 | :vimgrep /pattern/{file} |- поиск по шаблону в нескольких файлах | | :vimgrep /pattern/{file} |- поиск по шаблону в нескольких файлах |
 | :cn |- переместиться к следующему совпадению | | :cn |- переместиться к следующему совпадению |
Строка 143: Строка 208:
 ## Сворачивание ## Сворачивание
  
 +|Команда|Значение|
 +|:---|:---|
 | zf#j |- создает свертку от текущей позиции до # строк вниз | | zf#j |- создает свертку от текущей позиции до # строк вниз |
 | zf/подстрока |- создает свертку от текущей позиции и до первой найденной подстроки | | zf/подстрока |- создает свертку от текущей позиции и до первой найденной подстроки |
Строка 149: Строка 216:
 ### Команды для управления: ### Команды для управления:
  
 +|Команда|Значение|
 +|:---|:---|
 | zc |- свернуть блок | | zc |- свернуть блок |
 | zo |- развернуть блок | | zo |- развернуть блок |
Строка 166: Строка 235:
 ## Работа с несколькими файлами ## Работа с несколькими файлами
  
 +|Команда|Значение|
 +|:---|:---|
 | :e file |- редактировать файл в новом буфере | | :e file |- редактировать файл в новом буфере |
 | :bnext либо :bn |- перейти к следующему буферу | | :bnext либо :bn |- перейти к следующему буферу |
Строка 185: Строка 256:
 ### Вкладки ### Вкладки
  
 +|Команда|Значение|
 +|:---|:---|
 | :tabnew либо :tabnew file |- открыть файл в новой вкладке | | :tabnew либо :tabnew file |- открыть файл в новой вкладке |
 | Ctrl + wT |- переместить текущее окно в собственную вкладку | | Ctrl + wT |- переместить текущее окно в собственную вкладку |
Строка 198: Строка 271:
 ## Регистры ## Регистры
  
 +|Команда|Значение|
 +|:---|:---|
 | :reg |- показать содержимое регистров | | :reg |- показать содержимое регистров |
 | "xy |- поместить содержимое в регистр x | | "xy |- поместить содержимое в регистр x |
Строка 220: Строка 295:
 </nowiki> </nowiki>
  
 +[[0_content|Оглавление]]
  
/var/www/html/dokuwiki/data/attic/vim/cheat_sheet.1701712427.txt.gz · Последнее изменение: (внешнее изменение)