2008-09-16 3 views
21

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

+1

Пожалуйста, переформулируйте это, чтобы попросить людей отправлять только одну команду за один ответ, чтобы они могли правильно проголосовать. – SCdF 2008-09-16 06:47:27

+0

Да. Пожалуйста, повторите это. – 2008-09-16 07:15:57

+0

Должен быть wiki сообщества. – mmcdole 2008-11-12 11:04:11

ответ

3

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

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

+0

Control-C, затем `: q!`? Почему Control-C? Почему не простой ESC? – tzot 2008-09-16 08:34:47

0

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

+1

На самом деле вы можете сбросить «%» и просто ввести «G». «%» Не имеет смысла. – 2008-09-16 07:05:55

+0

% не является бессмысленным, так как он переносит вас в соответствующий кронштейн. Если вы не внутри скобок (квадратные, курчавые или круглые скобки), то это не-op. – tzot 2008-09-16 08:35:56

27

Я держу Vi Reference Card со мной в течение многих лет. Это очень полезно.

+0

Я напечатал его и прикрепил к нему на доске. Это так здорово!! Спасибо – 2009-04-23 17:23:04

+0

Итак, что единственная команда vi для получения справочной карты vi pdf? -) – tzot 2010-04-09 22:10:54

0

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

0

Я использую 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) 

Я знаю, что есть много гораздо больше, но это достаточно, чтобы получить Вас.

+0

, если вы используете их только, то редактор на основе scintilla (например, notepad ++) намного лучше. – hasen 2009-05-07 13:25:52

0

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

4
: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 

Я предполагаю, что те являются основными один, чтобы начать с

0

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

4

Используйте команду «J» (J для Join; upper-case), чтобы удалить новую строку в конце строки. В противном случае это будет сложно.

5

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

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

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

qq 

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

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

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

@q 

для примера, как указано выше.

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

1

псевдоним VI Nedit :)

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

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

, но в этот момент вы, возможно, хорошо - - man vi и обновите свою память

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

1

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

0

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

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

1

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

0

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

+0

«vim быстро превращается в emacs нового века». Я честно не уверен, как это интерпретировать. – Jeff 2009-02-12 05:47:34

0

заменить «Foo» с «бар» везде в файле :% с/Foo/бар/дс

14

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

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

2
" ~/.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> 
8

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

2

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

2

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

3

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

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

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

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

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

1

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

1
:set ignorecase smartcase 

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

0

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

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

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

1
:%!xxd 

Просмотреть содержимое буфера в шестнадцатеричном формате. Для возврата:

:%!xxd -r 
0

Мои фавориты:

% find matching bracket/brace 
* and # next/previous match 
gg top of page 
G end of the page 
<Ctrl-v> Change to visual mode and select column 
<Ctrl-a> increase current number by 1 
<Ctrl-x> decrease current number by 1 
Running macros 
0

Никто не упомянул избыточную Ctags? Google и установить его; намного лучше, чем у ctags по умолчанию. Чтобы использовать его, введите cd в корневой каталог проекта и введите

:! Ctags -R.

Создает базу данных всего в вашем проекте ... java, C++, python, ruby, javascript, что угодно, в файле, называемом тегами.

: help ctags для множества команд, слишком много для суммирования, для использования сгенерированных тегов. Наведите курсор на имя функции, введите CMD], чтобы открыть файл, который ее определяет. Много таких команд. Вскоре становится второй натурой ... почти такой же приятный, как IDE (и VIM никогда не отпускает вас так часто, как затмение.

0

Я сделал первые шаги, используя The tutorial here, и использовал ссылку на cheatsheet в течение нескольких недель. .., конечно, есть vimtutor в VIM/Gvim/MacVim

0

Иногда это приятно переформатировать буфер (т.е. повторно закладка, выравнивание скобок и т.д.), я недавно узнал время заставки для этого:

gg=G 

Например, ...было бы включить следующее:

if (!flag) 
{ 
    // Do something special 
    } 
else 
    { 
// Do another special thing 
} 

в следующее:

if (!flag) 
{ 
    // Do something special 
} 
else 
{ 
    // Do another special thing 
} 

Или, если у вас файл XML, который вы надеетесь повторно отступы, потому что формат все поддатый вы могли бы запустить выше команды и включить что-то вроде следующего:

<root> 
<addressBook> 
    <contact first="Frank" last="Tank"/> 
     <contact first="Foo" last="Man"/> 
    </addressBook> 
</root> 

во что-то немного более читаемым человеком, как следующее:

<root> 
    <addressBook> 
     <contact first="Frank" last="Tank"/> 
     <contact first="Foo" last="Man"/> 
    </addressBook> 
</root> 
0

Несколько месяцев назад я переключился с Textmate на VIM и написал руководство о том, как делать 110 команд редактирования Textmate в VIM. Он организован в категории, такие как управление файлами, автозаполнение слов и подсветка синтаксиса.

Textmate to VIM

0

Пожалуйста, смотрите этот сайт интересный способ узнать существенное движение команд: http://kikuchiyo.org. Я думаю, что наиболее важные команды покрыты потоком, но мне всегда нравится предлагать это для новичков в vim. щелкните по первой ссылке поезда, в которой есть легенда для основных команд перемещения и команда вставки i для сбора рубинов. Хорошая практика для быстрого перемещения.

0

:g/<pattern>/t$

скопирует <pattern> до конца файла. Полезно, когда вы хотите извлечь строки, но не хотите делать это один за другим.

1

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

set number 
set relativenumber 

Это дает мне систему нумерации линий, что делает J, к ключи действительно продуктивной.