您的位置:首页 > 其它

GVIM常用命令

2017-01-08 21:07 267 查看
这是一篇较全的vim命令。特记录下来,有稍作修改说明。摘http://hi.baidu.com/ui176/item/b00ae7c0eeaba52847d5c0c5

Vim常用命令

跳到指定的行号:

在命令行下直接输入:行号

比如跳到500行,输入:500即可

整体缩进的操作:

在命令行模式下,按住shift+v进入可视行选择状态,使用shift加上下左右方向键选择好整体的代码块,然后再按住shift+>或者shift+< 向右或者向左缩进即可整体缩进。
Vim多行缩进技巧

首先进入命令状态,然后按v进入visual状态,一定要在可视状态,选择多行()注意这里的选择可不是用鼠标选择,而是使用shift+方向键进行选择,用>或<缩进或缩出

gvim 查找之后结果的高亮如何关闭?

:noh

显示菜单栏;set go=menu;

不显示菜单;set go=;

显示底部滚动条:set go+=b;

显示右侧和底部滚动条:set go+=rb;

智能补全;ctrl+x 后再ctrl+o或者ctrl+p;

vim在插入状态下按ctrl+p键就会显示你曾经输入过的字符

「将当前光标下的列高亮」——:set cuc

光标移动:

w    :光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上

b   
4000
 :与w相反

^    :移动光标到行首第一个非空字符上去

$    :移动光标到行尾第一个非空字符上去

%    :移动到与制匹配的括号上去(),{},[],<>等。

nG    :跳转到第n行。

可视模式

v        :可视模式

V        :选择行

CTRL-V or CTRL-Q    :选择块

文本操作

y    :复制选择的内容

ye    :复制一个单词

yy    :复制一行

p    :粘贴

x    :可视模式下,x为剪切选择内容

viw    :选中光标当前所在处的单词

yiw    :复制光标当前所在处的单词

vi下的复制方法

方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y’a复制从标记位置a到 当前位置的内容。`和’的区别:`以字符为单位,’以行为单位。这个方法应该是所有vi
都适用的。

选择寄存器复制内容

这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验.

“< 字母>yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和 拷贝下来的东西的地方), <字母>里面的字母必须是a到z之间的一个.
“<字母>dd可以把 一行剪切下来放到寄存器里面. 你可以在yy或者dd前面用数字指明要拷贝或者剪切的行数.如果<字母>中的字母是大写的话,意味着把文本插入到寄存器中已有的文本之前. “<字母>p把文本插入到光标之后,”<字母>P把文本插入到光标之前.如果寄存器中含有某一行的开头或结尾,这一行将会被放到另一合适的行. Y是yy的快捷方式. 还有, y$, yH, yM,等等,都是可以用的.d命令也是一样的.如果要快速的剪切和粘贴, 你就无须指定寄存器了.如果这样的话,你就不能往寄存器里面添加文本了.而且只要有一个删除命令的话,
寄存器中的东西就没有了(包括x命令). 举例来说,如果要移动上一段的话,你可以把光标 移到段落的开头,敲”a13dd,再把光标移到你想要放文本的地方,敲”ap,就可以把那段文本放到光标所在的行后面. 现在,大概你想要剪切和粘贴文本到不是行末尾的区域去.我们 来看如何做到这一点:我们可以使用 m<字母> 命令来标记一个区域,这个字母可以和 剪切/粘贴寄存器的字母相,因为它们是保存在内存中的不同位置. 然后, 敲”<寄存器>`<字母>[yy或者dd], 这里的寄存器就是要保存文本的那个寄存器,<字母> 是用来标记的,yy和dd是你的操作.

~    :修改光标下字符的大小写,并移动到下一个字符。这不是一个操作符 (除非设置了 ’tildeop’),所以你不能连接一个动作命令。这个命
令在可视模式下也有效,它会改变被选中的所有文本的大小写。

I    :移到当前行的第一个非空字符并启动插入模式

A    :移动到行尾并启动插入模式

o    :在当前行的下面另起一行

O    :在当前行的上面另起一行

dw    :删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw

dd    :删除一行

cw    :修改一个单词

dtx    :从光标所在处开始,删除到”x”。

d/text    :删除从文本中出现”text”中所指定字样的位置, 一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

cc    :改变整行

C$    :改变到行尾

shift + < 左移一行

shift + > 右移一行

<%或>%    :来将{,(或[等符号括起来的文本都左移或右移;这时候,你必须把光标放在这些符号({,(或[)上面.

u        :undo

CTRL+R    :re-do

J        :合并一行

CTRL+p     :自动完成功能(在输入模式使用)

CTRL+g    :查看当前文件全路径

:n1,n2 co n3         :将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。

:n1,n2 m m3         :将 n1 行到 n2 行之间的内容移至第 n3 行下。

:n1,n2 d             :将 n1 行到 n2 行之间的内容删除。

:n1,n2 w filename     :将 n1 行到 n2 行之间的内容保存到文件 filename 中

使用剪贴板

"*y    :将内容复制到剪贴板

"*p    :将剪贴板的内容粘贴出来

存盘:

:q!         :不存盘退出

:e!         :放弃修改文件内容,重新载入该文件编辑

:wq         :存盘退出

:w            :存盘

:browse o    :用浏览器打开文件<
123df
/div>

:browse w    :用浏览器保存文件

:wqa        :保存并关闭所有文件

:qa            :关闭所有文件

:browse wa    :用浏览器保存所有文件

u: 撤销前一次的操作

ZZ:保存当前文档并退出VIM

帮助

:help             :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O
返回。

:help subject     :看某一主题的帮助,ZZ 退出帮助

:help {主题}    :例如,要获得 “x” 命令的帮助,输入如下命令:

:help x

:help CTRL-A

查找

fx             :移动到一个指定的字符,单字符查找命令是最有用的移动命令之一。”fx”
命令向前查找本行中的字符 x。提示:”f” 表示 “Find”。

/pattern    :正方向搜索一个字符模式

?pattern     :反方向搜索一个字符模式

然后按n 继续向下找

精确查找整个单词    :如果你输入 “/the”,你也可能找到 “there”。要找到以 “the” 结尾的单词,可以用:

/the\>

“\>” 是一个特殊的记号,表示只匹配单词末尾。类似地,”\<” 只匹配单词的开头。 这样,要匹配一个完整的单词 “the”,只需:

/\<the\>

把光标放到某个单词上面,然后按*号键,表示查找这个单词。”#” 命令在反向完成相同的功能。

查找整个单词:/\<word\>

:set hlsearch         :高亮显示查找到的单词

:set nohlsearch     :关闭改功能

查找替换:

way1:

/【word】 :查找某个word

? 命令功能与 “/” 的功能类似,但是是反方向查找

cw【newword】:替换为新word

n: 继续查找

.: 执行替换

way2:

:s/string1/string2/g:在一行中将string1替换为string2,g表示执行 用c表示需要确认

:num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2

:1,$ s/string1/string2/g:在全文中将string1替换为string2

如果替换时需要确认,在g后面加上一个c(confirm)

如果要全文搜索,在”s/”前面加上一个%,例如”:% s/”

书签

m[a-z]    :在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处

“        :最后编辑的位置

:marks    :你可以用如下命令取得所有的标记的列表:

r:替换当前字符

nr字符:替换当前n个字符

分割窗口

:split            :分割一个窗口

:split file.c     :为另一个文件file.c分隔窗口

:nsplit file.c    :为另一个文件file.c分隔窗口,并指定其行数

CTRL+W            :在窗口中切换

:close            :关闭当前窗口

写文件

:n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去

宏命令

q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。

用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].

设置

前提操作:如果你不知道你的 vimrc 在什么地方,可以使用如下命令

:scriptnames                :确认设置文件的路径。

:set nocompatible            :与Vi兼容

:set ruler                    :总在
Vim 窗口的右下角显示当前光标位置。

:set showcmd                :在
Vim 窗口右下角,标尺的右边显示未完成的命令。例如,当你输入 “2f”,Vim 在等你输入要查找的字符并且显示 “2f”。当你再输入w,”2fw” 命令被执行,”2f” 自动消失。

:set incsearch                :在查找模式输入完前显示匹配点。

:map Q gq                     :这定义一个键映射。下一节会介绍更多的相关内容。这将定义
“Q” 命令用来完成与 “gq” 操作符相同的功能,这是在 Vim 5.0 版前 “Q” 命令的作用。如果没有设置这个映射, “Q” 会启动 Ex 模式,这也许不是你想要的情况。

:set number / set nonumber     :显示/不显示行号

:set ruler /set noruler        :显示/不显示标尺

:set sy on                    :设置语法高亮

:set colo {theme}            :设置主题颜色

:set guifont=Courier_New:h10:cANSI    :设置字体(注意字体名之间的空格用下划线代替)

:set tabstop=4                        :设置tab键的宽度

:set nobackup                        :不要备份

:set nowritebackup                    :不要备份

au GUIEnter * simalt ~                :界面最大化

简单键盘映射

:map    :查看当前系统的键盘映射。

映射可以使你把一系列 Vim 命令绑定为一个单键。假设你要用一个大括号将一个特定的 单词括起来。例如,把 “amount” 变成 “{amount}”。用
“:map” 命令,就可以让 F5 来 完成这个工作。命令如下:

:map <F5> i{<Esc>ea}<Esc>

Note:

在输入这个命令时,<F5> 要用四个字符表示。相似地,输入 <Esc> 不是直接按 <Esc> 键,而是输入五个字符。在读这份手册要注意这些区别!

让我们来分解一下这个命令:

<F5>        F5 功能键。这是命令的触发器。当这个键被按下时,相应的命令即被 执行。

i{<Esc>     插入 { 字符。<Esc> 键用于退出插入模式。

e           移动到词尾。

a}<Esc>     插入 } 到单词尾。

执行 “:map” 命令后,要在单词两端加上 {},只需要移到单词上的第一个字符并按 F5。

在这个例子中,触发器是一个单键;它还可以是任何字符串。但若你使用一个已经存在 的 Vim 命令,该命令将不在有效。所以你最好避免出现这种情况。
一个可用于映射的键是反斜杠。因为你很可能想定义多个映射,那就加上另一个字符。

你可以映射 “\p” 为在单词两端加园括号,而映射 “\c” 为加花括号,例如:

:map \p i(<Esc>ea)<Esc>

:map \c i{<Esc>ea}<Esc>

你需要在敲入\后,立即敲入p,以便 Vim 知道它们组成一个命令。

如果组合键中间有CTRL,就要缩写为C,例如CTRL-Tab要写成<C-Tab>

常用选项

Vim 中有很多选项。大部分你很少用得上。我们在这个介绍一些常用的。别忘了你可以 通过 “:help” 命令获得更多的帮助。方法是在选项命令前后加上单引号,例如:

:help ‘wrap’

如果你搞乱了一个选项,你可以通过在选项后加上一个 & 号把它恢复到默认值。例如:

:set iskeyword&

禁止折行

Vim 通常会对长行自动换行,以便你可以看见所有的文字。但有时最好还是能让文字在一 行中显示完。这样,你需要左右移动才能看到一整行。以下命令可以切换换行方式:

:set nowrap

当你移到到那些不能显示的文字上,Vim 会自动向右滚动让你看到后面的文字,要一次滚 动十个字符,这样就行了:

:set sidescroll=10

这个命令不改变文件中的文字,只改变显示方式。

Tab操作

tabs            :查看当前打开的tab的文件路径。

tabnew            :新建tab。

tabnext,gt        :切换到下一个tab。

tabprevious,gT    :切换到上一个tab。

tabclose        :关闭当前tab。

tabfirst        :切换到第一个tab。

tablast            :切换到最后一个tab。

tabrewind        :切换到上一个激活过的tab。

批量注释

移动光标到需要注释掉的第一行开头,然后按Ctrl-v(如果使用了VIM的mswin.vim,则Ctrl-v表示粘贴,这时需要用Ctrl-q代替)进入Visual
blockwise模式,这个模式是Visual mode的一种,相当于UltraEdit中的块选择。然后按j选择上所有需要注释行的行首(看起来效果是选择了第一列),输入I//再按ESC就可以在每一行开头插入//了。

折叠文本

zf    :折叠你选中的文本。

zd    :展开你光标所在处的折叠文本。

zD    :展开所有折叠的文本。

缩写

VI/VIM支持用一个缩写字符串代替一个长的字符串,比如 :ab hw hello world, 然后在Insert mode下输入“hw
”(不包括引号)后VIM就自动替换成了“hello world”。

制作帮助

把帮助文件放到\vim\vim~\doc\文件夹中

文件必须是.txt文件,文件首必须是”*filename*”,例如:*usual_command.txt*

在文件中添加关键字,例如”*usual*”,然后在Vim中通过:help usual打开帮助文件

这里注意:要想使你的帮助文件立刻生效,请先执行这条命令:

helptags E:\Program Files\Vim\vim73\doc     即刷新你的vim的帮助文件所在的目录,将你制作的帮助文件加入到helptags,要不你再vim里

执行:help usual_command ,就会提示找不到文件说明。

 还有注意帮助文件的字符编码,编码不匹配就会使乱码。

//在vim中,执行:helptags ~vim\doc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: