Подтвердить что ты не робот

Vim/vi Руководство по выживанию

Каковы основные команды vim? Что новый пользователь должен знать, чтобы не попасть в беду? Одна команда за комментарий, пожалуйста.

4b9b3361

Ответ 1

Я поддерживаю справочную карту со мной в течение многих лет. Это очень полезно.

Ответ 2

То, что я нахожу незаменимым (потому что оно работает в vi также, в отличие от визуального режима vim), является меткой. Вы можете отметить различные точки с помощью m (нижний регистр), а затем буквой по вашему выбору (например, x). Затем вы отправляетесь в другое место и можете вернуться с помощью `` x (backquote letter) to the exact spot, or with 'x` (апострофная буква), чтобы перейти к строке.

Эти перемещения могут использоваться в качестве аргументов для команд (yank, delete и т.д.). Например, вы хотите удалить 10 строк; вместо того, чтобы подсчитывать, а затем переходить к верхней строке и вводить 10dd, вы переходите к началу или концу блока, нажмите mm (отметка m), затем перейдите на другой конец блока и нажмите d'm (удалить апостроф m). Если вы используете backquote вместо apostrophe в этом примере, то удаление будет работать по-разному, а не по линии. Попытайтесь пометить в середине строки "метку m", переместившись в середину другой строки, затем введя "d backquote m", и вы увидите, что я имею в виду.

Ответ 3

Я был очень счастлив в тот день, когда узнал об использовании * или # для поиска, вниз или вверх соответственно для слова под курсором. Сначала убедитесь, что :set incsearch и :set hlsearch.

Ответ 5

Когда у вас есть несколько повторяющихся действий для макросов, обычно быстрее, чем регулярное выражение. Просто введите

q[0-9a-z] in normal mode

Многие люди используют

qq

потому что это быстро. Нажмите   q в нормальном режиме снова, чтобы остановить запись. Затем просто введите

@[0-9a-z] in normal mode

чтобы повторить то, что вы только что записали.

@q

для примера, описанного выше.

Отредактировано для добавления: вы также можете повторить макрос. Скажем, вы запрограммировали макрос, чтобы перейти к голове линии, вставить вкладку, а затем спрыгнуть на одну строку. Затем вы проверяете свой макрос, набрав "@q", чтобы запустить его один раз. Затем вы можете повторить действие еще девять раз, набрав "9 @q".

Ответ 6

:q -> quit
:w -> save
:q! -> quit and don't save
:x -> save and quit
:[number] -> go to line number
G -> go to end of file
dd -> delete line
p -> "put" line
yy -> "copy" line
:s/[searchfor] -> search

Я думаю, что это базовый, который начинается с

Ответ 7

Используйте команду "J" (J для объединения; верхний регистр), чтобы удалить новую строку в конце строки. В противном случае это будет сложно.

Ответ 9

Прежде всего, вам нужно знать, как закрыть vi: ctrl-c: q!

Отдых можно найти у vimtutor. Запустите vimtutor, набрав vimtutor в командной строке

Ответ 10

Хотя это вопрос личного предпочтения, я обнаружил, что одна из существенных вещей - переназначить Esc на что-то еще.

Мне очень неудобно добираться до клавиши Esc, чтобы выйти из режима вставки, но замечательная вещь о Vim - это то, что позволяет сопоставления клавиш.

В настоящее время я использую следующее сопоставление, используя Control + S:

inoremap <C-s> <Esc>:w<CR>

Это имеет преимущество, заключающееся в том, что я являюсь ключевым сопоставлением, которое я уже внес в память, и имеет дополнительную ценность для сохранения моей работы каждый раз, когда я перехожу в обычный режим. Да, я знаю, что это безумие, но я бы бил команду сохранения, которая часто так или иначе. Вы знаете, что это плохая привычка.

Ответ 11

" ~/.vimrc
" Turn on line numbering
set nu
" Turn on syntax highlighting
syntax on    
" Set 4 space expanding tabs
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
"turn off line wrapping
set nowrap
" Map CTRL-N to create a new tab
:map <C-n> <ESC>:tabnew<RETURN>
" Map Tab and CTRL-Tab to move between tabs
:map <Tab> <ESC>:tabn<RETURN>
:map <C-Tab> <ESC>:tabp<RETURN>

Ответ 12

Если вы используете vim, команда "u" (в командном режиме) отменит последнюю введенную команду. Вы можете использовать эту команду несколько раз, чтобы отменить ошибки, которые вы, возможно, сделали, прежде чем сохранять файл.

Ответ 13

Смотрите http://www.rayninfo.co.uk/vimtips.html для большой коллекции советов Vim, от базового can't-live - без очень сложных вещей, которые вы, возможно, никогда не думали о попытке.

Ответ 14

Много больших команд перечислены в Vim Tips Wiki.

Ответ 15

alias vi nedit:)

весь юмор в сторону.. для vi КОГДА НЕ используйте nedit..

  • i (переход в режим вставки)
  • a (append = перемещение в конец строки и переход в режим вставки)
  • esc (режим вставки выхода)
  • dd удалить строку
  • x удалить символ
  • :wq (сохранить и выйти)
  • / начать поиск
  • n найти Далее
  • ? поиск назад..
  • yy (yank) скопировать строку в буфер
  • pp (вставить) здесь.
  • r (замените символ)
  • <N> <command> это аккуратная, но отягчающая функция, которая позволяет вводить цифры, а затем команду, поэтому
  • 5dd удалит 5 строк

но на этом этапе вы могли бы также - man vi и обновите память

Пока есть БОЛЬШЕ больше, я переключился с Vi на nedit несколько лет назад, и у меня есть больше возможностей, которые я могу использовать на регулярной основе более легко. Редактирование с вкладками, инкрементная строка поиска, выбор столбцов, копирование и вставка. сортировать выбранные строки, искать и уничтожать в пределах выделения, весь документ или все открытые документы.. отрывные меню. и он поддерживает подсветку синтаксиса для всех языков, которые я использую.. (с файлами шаблонов, которые я использовал долгое время на протяжении многих лет. VIM многие из них теперь эквивалентны, но он должен представить функцию, которую Nedit не делает и простой способ для миграции моих файлов шаблонов, прежде чем я снова включу.

Ответ 16

Также полезно запускать vimtutor при изучении этих команд

Ответ 17

Мой самый большой совет: ctrl + q сохраняет день, когда вы случайно нажимали ctrl + s, чтобы сохранить файл, над которым вы работаете

Ответ 18

Мне нравится Vim 5.6 Справочное руководство, Брам Муленаар и Олег Райский.
Вы можете напрямую распечатать его в виде буклета, легко прочитать, я всегда его кладу.  Это немного старый, но что такое 8 лет в жизни жизни?

Ответ 19

:set ignorecase smartcase

Делает поиск без учета регистра, если только ваш поиск содержит заглавную букву. Не самое необходимое, возможно, но я нахожу, что настраиваю этот параметр в любое время, когда редактирую новое место. Это в любом файле vimrc, который у меня есть.

Ответ 20

:%!xxd

Просмотр содержимого буфера в шестнадцатеричном формате. Чтобы вернуться:

:%!xxd -r 

Ответ 21

У меня это в моем vimrc

set number
set relativenumber

Это дает мне систему нумерации строк, которая действительно делает клавиши j, k.

Ответ 22

Одна из моих любимых команд - это% G, которая берет непосредственно в конец файла. Особенно полезно в журнальных файлах.

Ответ 23

Как переключаться между режимами (i, чтобы войти в режим вставки (один из многих способов), esc для выхода из режима вставки, двоеточие для командного режима) и как сохранить и выйти. (: WQ)

Ответ 24

Я использую vi очень легко, и я использую только следующие команды:

a   - switch to insert mode (after the cursor)
esc - return to command mode
:wq - save and quit
:q  - quit (no save, only without modification)
:q! - force quit (no save, also with modification)
x   - delete one character (in command mode)
dd  - delete the whole line (in command mode)

Я знаю, что их гораздо больше, но их достаточно, чтобы вы могли.

Ответ 25

Другой полезной командой является поиск чего-либо:/ например /Mon будет искать (и в случае vim highlight) любые вхождения Mon в ваш файл.

Ответ 26

Как уже упоминалось еще несколько человек, vimtutor - это путь. Он научит вас всему, что вам нужно знать в vim. Один из общих советов, которые я хотел бы дать вам, заключается в том, чтобы максимально избегать использования режима вставки. В других режимах есть огромная сила, для того, чтобы привыкнуть к этому, требуется немного практики.

Ответ 27

i - режим вставки (выход для выхода) dd - удалить строку shift-y - "Янки" (копия) p - 'Put' (паста) линия (линий) shift-v - Визуальный режим, используемый для выбора текста (попробуйте "выдернуть" этот текст и "положить" его где-нибудь. ctrl-w n - создать новое окно (вы можете открыть файл или запустить новый файл здесь) ctrl-w v - разделение существующего окна по вертикали ctrl-n (в режиме вставки) - автозаполнение (если поддерживается) :! для запуска команды оболочки, обычно со стандартным в виде файла или выделения (shift-V)

Полезные плагины для просмотра: * Buffer Explorer - используйте \be для просмотра файлов в буфере (и выберите для повторного открытия)

Ответ 28

NB vi не vim! vim быстро превращается в emacs нового века. nvi, вероятно, самое близкое к оригинальному vi. Здесь хороший намек: "xp" обменяет два символа (попробуйте).

Ответ 29

заменить 'foo' на "bar" всюду в файле :% S/Foo/бар/дс

Ответ 30

Реальная власть в поиске. Вот основные команды:

/Стив найдет первый экземпляр "Стива" в тексте. n найдет следующий текст "Стив" в тексте. :% s//Stephen/g заменит все те экземпляры "Steve", которые вы только что искали с помощью "Stephen".

Не продвигать себя, но я написал сообщение blog на эту тему. Он фокусируется на критических частях Vim для новичков.