vim常用命令

一 注释多行
:开始行数,结束行数s/^/注释符/g
全文注释
:%s/^/注释符/g
按下Ctrl+v,进入列模式:b.在行首选择需要注释的行; c.按下“I”,然后输入注释符(“//”、“#”等); d.按下两次“Esc”键。2.删除多行注释: a.按下Ctrl+v,进入列模式; b.选定要取消的注释符; c.按下“x”或者“d”
取消高亮:nohls

二 把修改存到另一个文件
:w 文件路径
: 开始行数,结束行数w 文件路径

三 移动到行首和行尾
"$" 命令把光标移动到当前行行尾。如果你的键盘上有 <End> 键,也可以完成相同的功能。
"^" 命令把光标移动到当前行的第一个非空字符,而 "0" 命令则移到一行的第一个字符

四 移动到指定的行
使用 "G" 命令。加上一个次数前缀,这个命令可以把你送到指定的行
gg移动到首行,G移动到末行
回到原来的地方,使用如下命令``用单引号 ' 也可以

CTRL-O 命令则跳到一个 "较老" 的地方。CTRL-I 则跳到一个 "较新" 的地方

五 两个文件切换
Vim file1 file2,:n切换到文件2,:N切换到文件1

六 全部复制
gg跳到首行,然后yG

七 全部删除
gg跳到首行,然后dG

八 全部选择
gg跳到首行,然后vG

九 选择多行
"v" 命令启动可视模式,移动光标选择多行
用 "o" 命令光标会移动到被选中文字的另一端,现在你可以移动光标去改变选中文字的开始点了。再按 "o" 光标还会回到另一端。当使用块可视模式的时候,你会有四个角,"o" 只是把你移到对角上。而用 "O" 则能移到同一行的另一个角上。
以下命令可以对标点内的内容进行操作。
ci'、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容
di'、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容
yi'、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容
vi'、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容

十 剪切
d或x

十一 有 名 字 的 标 记
Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记(a到z)。要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记a的命令是: `a命令 'mark(单引号加上一个标记)会移到标记所在行的行首。这与 `mark 命令是不同的,后者是移到标记所在行上被标记的列。
然后使用 '' 跳回来。或者用 'e 跳到你正在处理的文尾的地方。你可以用如下命令取得所有的标记的列表:marks
十二 滚屏
CTRL-U 命令向下滚动半屏。想象一下通过一个视口看着你的文本,然后把这个视口向上移动 
该视口的一半高度。这样,窗口移动到当前文字的上面,而文字则移到窗口的下面。不用担心 
记不住那边是上。很多人都是这样。 
    CTRL-D命令把视窗向下移动半屏,所以把文字向上移动半屏。


                                       +----------------+ 
                                       | some text      | 
                                       | some text      | 
                                       | some text      | 
        +---------------+              | some text      | 
        | some text     |  CTRL-U  --> |                | 
        |               |              | 123456         | 
        | 123456        |              +----------------+ 
        | 7890          | 
        |               |              +----------------+ 
        | example       |  CTRL-D -->  | 7890           | 
        +---------------+              |                | 
                                       | example        | 
                                       | example        | 
                                       | example        | 
                                       | example        | 
                                       +----------------+


每次滚一行的命令是 CTRL-E(上滚)和 CTRL-Y(下滚)

十二 移动光标到屏幕上、下和中间

当你用 "j" 向下移动的时候,你的光标会处于屏幕的底部,"zz" 命令实现光标所在行处于屏幕的中间。"zt" 把光标所在行移动到屏幕的顶部,而 "zb" 则移动到屏幕的底部

十三 指 定 次 数
假定你想向上移动 9 行,可以输入"9k"。实际上, 你可以在很多命令前面加一个数字。例如增加三个感叹号, "3a!<Esc>"。次数 3 要求把后面的命令执行三次。同样的,要删除三个字符,可以使用 "3x"。次数总是放在要被处理多次的命令的前面

十四 词移动
移动光标向前跳一个词,可以使用 "w" 命令可以在命令前加数字前缀表示把这个命令重复多次。例如,"3w" 表示向前移动3个单词。如果光标已经在一个单词的词首,"w" 移动到下一个单词的词首。 "b" 命令向后移动到前一个词的词首。
"e" 命令可以移到下一个单词的词末,而 "ge" 则移动到前一个单词的末尾:如果你在一行的最后一个单词,"w" 命令将把你带到下一行的第一个单词。
一个词以非单词字符结尾,例如 ".","-" 或者 ")",可能使用W、B、E、gE来移动

十五 删除单词
"dw" 命令删除一个单词。"d" 命令后面可以跟任何 "动作"(motion)命令,它会删除从当前位置到光标移动到的目标位置的的全部内容。例如 "4w" 命令能够向后移动四个单词。所以 "d4w" 命令删除4个单词。
Vim 只删除从当前位置到 "动作" 把光标移动到的位置的前一个位置。这是因为 Vim 认为你可能不想删掉一个单词的第一个字符。如果你用 "e" 命令作为动作,这时 Vim 认为你是想删掉整个单词(包括最后一个字符):
"$" 命令移动到行尾。所以,"d$" 命令从当前的位置一直删除到本行行尾。这是一个"包含的" 命令,所以,这行的最后一个字符也会被删除

十六 单行查找
"fx" 命令向前查找本行中的字符 x。你可以在这个命令前面加数字前缀,”3fl" 命令移动到第三个l处,"F" 命令用于向左查找
"tx" 命令与 "fx" 相似,但它只把光标移动到目标字符的前一个字符上。提示:"t"表示 "To"。这个命令的反向版本是 "Tx"。

这四个命令可以通过 ";" 命令重复,"," 命令则用于反向重复。无论用哪个命令,光标永远都不会移出当前行,哪怕是这两行是连续的一个句子。

十七 查找文本
"?" 命令功能与 "/" 的功能类似,但是是反方向查找:?word,"N" 命令在反方向重复前一次查找。因此,在 "/" 命令后执行 "N" 命令是向后查找,在 "?" 命令后执行 "N" 命令是向前查找
通常,你必须区分大小写地输入你要查找的内容。但如果你不在乎大小写。可以设置 'ignorecase' 选项:set ignorecase
如果你现在要查找 "word",它将匹配 "word" 和 "WORD"。如果想再次区分大小写:set noignorecase

如果你确实想匹配一个特殊字符,你可以在前面加一个反斜杠去消除它的特殊含义

十八 查找单词
假设你在文本中看到一个单词 "TheLongFunctionName" 而你想找到下一个相同的单词。 你可以输入 "/TheLongFunctionName",但这要输入很多东西。而且如果输错了,Vim是不可能找到你要找的单词的。有一个简单的方法:把光标移到那个单词下面使用 "*" 命令。Vim 会取得光标上的单词并把它作为被查找的字符串。"#" 命令在反向完成相同的功能。你可以在命令前加一个次数:"3*" 查找光标下单词第三次出现的地方

要找到以 "the" 结尾的单词,可以用: /the>,"\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。这样,要匹配一个完整的单词 "the",只需:/\<the\>

十九 括号匹配
%能匹配一对括号。如果光标在 "(" 上,它移动到对应的 ")" 上,反之,如果它在 ")" 上,它移动到 "(" 上。这个命令也可适用于 [] 和 {}。当光标不在一个有用的字符上,"%" 会先向前找到一个。比如当光标停留在上例中的行 
首时,"%" 会向前查找到第一个 "("。然后会移动到它的匹配处。
 
二十 大小写转换
gu,gU,也可在单词上使用~

二十一 撤消重做
撤消:u;重做:Ctrl + R

二十二 删除一个分行符
Vim 中你可以把两行连起来,这意味着两行间的换行符被删除了。"J" 命令 把光标移到第一行,然后按 "J"

二十三 开始一个新行
"o" 命令在光标下方建立一个新的空行,并把 Vim 切换到插入模式

"O" 命令(大写)在光标上方打开一个新行。

二十四 重新修改
你放弃修改后还想重新编辑,用 ":e!" 命令可以重新装载原来的文件

二十五 设置备份
:set backup
:set backupext=.bak

二十六 设置行号
:set number
:set nonumber

二十七 设置注释颜色
在/etc/vim/vimrc增加
highlight Comment ctermfg=green guifg=green

二十八 删除多行
先输入命令:set nu显示行号,然后输入你要删除的第一个行号和最后一个行号进行删除,例如,第20到30行,输入命令:20,30d

二十九 复制多行
在命令模式下,将光标移动到要复制的首行处,按nyy复制n行,其中n为行数,1,2,3……,然后将光标移到要粘贴的行处,按p进行粘贴

三十 取消自动注释
vim在粘贴内容的时候,如果遇到以#开始的注释行,会自动将后续的所有行进行注释,要取消此功能,只需编辑vimrc文件,添加set paste即可,vim全局配置文件在/etc/vimrc,用户配置文件在~/.vimrc

三十一 设置编码
在文件中键入合令set encoding=utf-8即可

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页