Каковы основные команды vim? Что новый пользователь должен знать, чтобы не попасть в беду? Пожалуйста, пожалуйста, одну команду за комментарий.Vim/vi Руководство по выживанию
ответ
Прежде всего, вам нужно знать, как закрыть vi: ctrl-c: q!
Отдых можно найти у vimtutor. Запустите vimtutor, набрав vimtutor в вашей командной строке
Control-C, затем `: q!`? Почему Control-C? Почему не простой ESC? – tzot 2008-09-16 08:34:47
Одна из моих любимых команд - это% G, которая берет непосредственно в конец файла. Особенно полезно в лог-файлах.
На самом деле вы можете сбросить «%» и просто ввести «G». «%» Не имеет смысла. – 2008-09-16 07:05:55
% не является бессмысленным, так как он переносит вас в соответствующий кронштейн. Если вы не внутри скобок (квадратные, курчавые или круглые скобки), то это не-op. – tzot 2008-09-16 08:35:56
Я держу Vi Reference Card со мной в течение многих лет. Это очень полезно.
Я напечатал его и прикрепил к нему на доске. Это так здорово!! Спасибо – 2009-04-23 17:23:04
Итак, что единственная команда vi для получения справочной карты vi pdf? -) – tzot 2010-04-09 22:10:54
Как переключаться между режимами (i для входа в режим вставки (один из многих способов), esc для выхода из режима вставки, двоеточие для командного режима) и как сохранять и выходить. (: WQ)
Я использую 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)
Я знаю, что есть много гораздо больше, но это достаточно, чтобы получить Вас.
, если вы используете их только, то редактор на основе scintilla (например, notepad ++) намного лучше. – hasen 2009-05-07 13:25:52
Другой полезной командой является поиск чего-либо:/ , например./Mon будет искать (и в случае выделения vim) любые вхождения Mon в ваш файл.
: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
Я предполагаю, что те являются основными один, чтобы начать с
Как пара других людей уже упоминалось, vimtutor это путь. Он научит вас всему, что вам нужно знать в vim. Один из общих советов, которые я хотел бы дать вам, заключается в том, чтобы максимально избегать использования режима вставки. В других режимах есть огромная сила, для того, чтобы привыкнуть к этому, требуется немного практики.
Используйте команду «J» (J для Join; upper-case), чтобы удалить новую строку в конце строки. В противном случае это будет сложно.
Когда у вас есть повторяющееся действие для макросов, как правило, быстрее, чем регулярное выражение. Просто введите
q[0-9a-z] in normal mode
Многие люди используют
qq
, потому что это быстро. Нажмите q в нормальном режиме еще раз, чтобы остановить запись. Тогда просто напечатайте
@[0-9a-z] in normal mode
повторить то, что вы только что записали.
@q
для примера, как указано выше.
Отредактировано для добавления: вы также можете повторить макрос. Предположим, вы запрограммировали макрос, чтобы перейти к голове линии, вставить вкладку, а затем спрыгнуть на одну строку. Затем вы проверяете свой макрос, набрав «@q», чтобы запустить его один раз. Затем вы можете повторить действие еще девять раз, набрав «9 @ q».
псевдоним 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 не делает, и простой способ перенести мои файлы шаблонов, прежде чем переключаться снова.
Также полезно запускать vimtutor, когда изучение этих команд
я - режим вставки (побег для выхода) дд - удалить линию сдвиг-у - 'дергать' (копия) линии р - положи '(паста) линии (s) shift-v - Визуальный режим, используемый для выбора текста (tryin 'yanking' этот текст и 'put' его где-нибудь. ctrl-w n - создать новое окно (вы можете открыть файл или начать новый файл здесь) ctrl-w v - разделение существующего окна по вертикали ctrl-n (в режиме вставки) - автозаполнение (если поддерживается) :! для запуска команды оболочки, обычно со стандартным в качестве файла или выбора (shift-V)
Полезные плагины для просмотра: * Буфер Explorer - используйте \ be для просмотра файлов в буфере (и выберите re -open)
Мне нравится этот QRC!
http://www.fsckin.com/wp-content/uploads/2007/10/vi-vim_cheat_sheet.gif
Мой самый большой совет: Ctrl + д экономит день, когда вы случайно ударил Ctrl + s для сохранения файла вы работаете
NB VI не vim! vim быстро превращается в emacs нового века. nvi, вероятно, самое близкое к оригинальному vi. Вот хороший намек: «xp» обменяет два символа (попробуйте).
«vim быстро превращается в emacs нового века». Я честно не уверен, как это интерпретировать. – Jeff 2009-02-12 05:47:34
Это recent Vim tutorial from IBM довольно хорошо
заменить «Foo» с «бар» везде в файле :% с/Foo/бар/дс
Что я нахожу незаменимой (потому что она работает в 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», и вы увидите, что я имею в виду.
" ~/.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>
Я был очень рад тому, что узнал об использовании * или # для поиска, вниз или вверх, соответственно, для слова под курсором. Удостоверьтесь, что :set incsearch
и :set hlsearch
.
Если вы используете vim, команда «u» (в командном режиме) отменяет последнюю введенную команду. Вы можете использовать эту команду повторно, чтобы отменить ошибки, которые вы, возможно, сделали, прежде чем сохранять файл.
См. http://www.rayninfo.co.uk/vimtips.html для большой коллекции советов Vim, от базового can't-live-без очень сложных вещей, которые вы, возможно, никогда не думали о попытках.
Хотя это вопрос личного предпочтения, я обнаружил, что одна из основных вещей - переделать Esc на что-то другое.
Мне очень неудобно доставать ключ Esc, чтобы выйти из режима вставки, но замечательная вещь о Vim - это то, что позволяет отображать ключевые сочетания.
настоящее время я использую следующее отображение с помощью Control + S
:
inoremap <C-s> <Esc>:w<CR>
Это имеет то преимущество, что является ключевым картирование я уже поручены к памяти и имеет дополнительное значение сохранения моей работы каждый раз, когда я иду в нормальный режим. Да, я знаю, что это безумие, но я бы бил команду сохранения, которая часто так или иначе. Знаешь, это похоже на плохую привычку.
Мне нравится Vim 5.6 Reference Guide, автор Bram Moolenaar и Олег Райский.
Вы можете напрямую распечатать его в виде буклета, легко прочитать, я всегда его кладу.
Это немного старый, но что такое 8 лет в жизни Ви?
Много замечательных команд перечислены на Vim Tips Wiki.
:set ignorecase smartcase
Делает поиск без учета регистра, если ваш поиск не включает в себя заглавную букву. Не обязательно , но я могу настроить этот параметр в любое время, когда я редактирую новое место. Это в любом файле vimrc, который у меня есть.
Настоящая власть находится в поиске. Вот основные команды:
/Стив найдет первый экземпляр «Стива» в тексте. n найдет следующий «Стив» в тексте. :% s // Stephen/g заменит все те экземпляры «Steve», которые вы только что искали с помощью «Stephen».
Не продвигать меня, но я написал сообщение blog на эту тему. Он фокусируется на критических частях Vim для новичков.
:%!xxd
Просмотреть содержимое буфера в шестнадцатеричном формате. Для возврата:
:%!xxd -r
Мои фавориты:
% 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
Никто не упомянул избыточную Ctags? Google и установить его; намного лучше, чем у ctags по умолчанию. Чтобы использовать его, введите cd в корневой каталог проекта и введите
:! Ctags -R.
Создает базу данных всего в вашем проекте ... java, C++, python, ruby, javascript, что угодно, в файле, называемом тегами.
: help ctags для множества команд, слишком много для суммирования, для использования сгенерированных тегов. Наведите курсор на имя функции, введите CMD], чтобы открыть файл, который ее определяет. Много таких команд. Вскоре становится второй натурой ... почти такой же приятный, как IDE (и VIM никогда не отпускает вас так часто, как затмение.
Я сделал первые шаги, используя The tutorial here, и использовал ссылку на cheatsheet в течение нескольких недель. .., конечно, есть vimtutor в VIM/Gvim/MacVim
Иногда это приятно переформатировать буфер (т.е. повторно закладка, выравнивание скобок и т.д.), я недавно узнал время заставки для этого:
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>
Несколько месяцев назад я переключился с Textmate на VIM и написал руководство о том, как делать 110 команд редактирования Textmate в VIM. Он организован в категории, такие как управление файлами, автозаполнение слов и подсветка синтаксиса.
Пожалуйста, смотрите этот сайт интересный способ узнать существенное движение команд: http://kikuchiyo.org. Я думаю, что наиболее важные команды покрыты потоком, но мне всегда нравится предлагать это для новичков в vim. щелкните по первой ссылке поезда, в которой есть легенда для основных команд перемещения и команда вставки i
для сбора рубинов. Хорошая практика для быстрого перемещения.
:g/<pattern>/t$
скопирует <pattern>
до конца файла. Полезно, когда вы хотите извлечь строки, но не хотите делать это один за другим.
У меня есть это в моем vimrc
set number
set relativenumber
Это дает мне систему нумерации линий, что делает J, к ключи действительно продуктивной.
Пожалуйста, переформулируйте это, чтобы попросить людей отправлять только одну команду за один ответ, чтобы они могли правильно проголосовать. – SCdF 2008-09-16 06:47:27
Да. Пожалуйста, повторите это. – 2008-09-16 07:15:57
Должен быть wiki сообщества. – mmcdole 2008-11-12 11:04:11