Vim/vi生存指南

Vim/vi生存指南,vim,vi,Vim,Vi,基本vim命令是什么?新用户需要知道什么才能避免自己陷入麻烦?请给每条评论一条命令。首先,您需要知道如何关闭vi: ctrl-c:q 其余的可以从vimtutor中找到。在命令行中键入vimtutor启动vimtutor我最喜欢的命令之一是%G,它直接指向文件的末尾。在日志文件中特别有用。如何在模式之间切换(i进入插入模式(多种方式之一),esc退出插入模式,冒号表示命令模式)以及如何保存和退出。(:wq)我很少使用vi,我只使用以下命令: a - switch to insert mode

基本vim命令是什么?新用户需要知道什么才能避免自己陷入麻烦?请给每条评论一条命令。

首先,您需要知道如何关闭vi: ctrl-c:q


其余的可以从vimtutor中找到。在命令行中键入vimtutor启动vimtutor我最喜欢的命令之一是%G,它直接指向文件的末尾。在日志文件中特别有用。

如何在模式之间切换(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)

我知道还有很多,但这些已经足够你应付了。

另一个有用的命令是搜索:/ e、 g./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;大写)命令删除行尾的换行符。否则,您会发现这很棘手。

当您需要执行一些重复操作时,宏通常比正则表达式快。 打字

q[0-9a-z] in normal mode
许多人使用

qq
因为它很快。 按 正常模式下的q 再次停止录制。 那就打字吧

@[0-9a-z] in normal mode
重复刚才录制的内容

@q
对于上面的例子

编辑以添加:也可以重复该宏。假设您编写了一个宏,使其跳转到一行的开头,插入一个制表符,然后跳转到下一行。然后,通过键入“@q”运行宏一次来测试宏。然后,您可以通过键入“”将该操作再重复九次9@q".

别名vi nedit:)

撇开所有的幽默不谈。。 不使用nedit时的vi

  • i
    (切换到插入模式)
  • a
    (append=移动到行尾并切换到插入模式)
  • esc
    (退出插入模式)
  • dd
    删除一行
  • x
    删除字符
  • :wq
    (保存并退出)
  • /
    开始搜索
  • n
    查找下一步
  • 向后搜索
  • yy
    (yank)将一行复制到缓冲区
  • pp
    (粘贴)粘贴到此处
  • r
    (替换字符)
  • 这是一个整洁但令人恼火的功能,它允许您键入数字,然后键入命令,以便
  • 5dd
    将删除5行
但在这一点上,你也可以 -
manvi
刷新你的记忆

虽然还有很多,但几年前我从Vi切换到了nedit,我发现它有更多的特性,我可以更容易地定期使用。选项卡式编辑、增量搜索栏、列选择、复制和粘贴。对所选行进行排序,在所选行、整张单据或所有打开的单据中搜索并销毁。。 撕下下拉菜单。。 它支持我使用的所有语言的语法高亮显示。。(多年来我一直在使用模式文件。VIM现在很多都是等效的,但它必须引入Nedit没有的功能,以及在我再次切换之前迁移模式文件的简单方法。

在学习这些命令时运行也很好

I-插入模式(退出退出) dd-删除行 shift-y-“猛拉”(复制)行 p-“放置”(粘贴)行 shift-v-用于选择文本的视觉模式(尝试“拖动”此文本并将其“放置”在某个位置)。 ctrl-w n-创建新窗口(您可以在此处打开文件或启动新文件) ctrl-w v-垂直拆分现有窗口 ctrl-n(在插入模式下)-自动完成(如果支持) :!运行shell命令,通常使用标准in作为文件或选择(shift-V)

要查看的有用插件: *缓冲区资源管理器-使用\be查看缓冲区中的文件(并选择重新打开)

我喜欢这个QRC


我最大的提示:ctrl+q保存了一天,当你不小心按下ctrl+s来保存你正在处理的文件时。注意:vim不是vim!vim正在迅速转变为新世纪的emacs。nvi可能是最接近原始vi的东西。这里有一个很好的提示:“xp”将交换两个字符(试试看).

这很好

将文件中的所有位置的“foo”替换为“bar” :%s/foo/bar/gc

我发现不可替代的是标记(因为它也在vi中工作,不像vim的视觉模式)。你可以用
m
(小写)标记不同的点,然后选择一个字母(例如x)。然后你去其他地方,可以用“`x
(反引号字母)返回到确切的点,或者用“
'x'(撇号字母)去排队

这些移动可以用作命令(yank、delete等)的参数。例如,您要删除10行;而不是先计数然后移动到最上面的行并输入
10dd
,而是转到块的开始或结束,按
mm
(标记m)在这个例子中,如果使用反引号代替撇号,那么删除将以字符为单位,而不是行行。尝试在行的中间用“Mark M”标记,移动到另一行的中间,然后输入“D反引用M”。你会明白我的意思。

“~/.vimrc
" ~/.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>
“打开行编号 显示行号 “打开语法突出显示 语法 “设置4个空间扩展选项卡 设置tabstop=4 设置shiftwidth=4 设置softtabstop=4 设置扩展选项卡 “关闭换行 立即停止 “映射CTRL-N以创建新选项卡 :map:tabnew “映射选项卡和CTRL选项卡以在选项卡之间移动 :地图:选项卡 :地图:选项卡
我很开心
inoremap <C-s> <Esc>:w<CR>
:set ignorecase smartcase
:%!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
set number
set relativenumber