Vim命令列表
vim全局替换命令
vim全局替换命令#将That or this 换成 This or that:%s/\(That\) or \(this\)/\u\2 or \l\1/—-#将句尾的child换成children:%s/child\([ ,.;!:?]\)/children\1/g—-#将mgi/r/abox换成mgi/r/asquare:g/mg\([ira]\)box/s//mg//my\1square/g <=> :g/mg[ira]b ox/s/box/square/g—-#将多个空格换成一个空格:%s/ */ /g—-#使用空格替换句号或者冒号后面的一个或者多个空格:%s/\([:.]\) */\1 /g—-#删除所有空行:g/^$/d—-#删除所有的空白行和空行:g/^[ ][ ]*$/d—-#在每行的开始插入两个空白:%s/^/> /—-#在接下来的6行末尾加入.:.,5/$/./—-#颠倒文件的行序:g/.*/m0O <=> :g/^/m0O—-#寻找不是数字的开始行,并将其移到文件尾部:g!/^[0-9]/m$ <=> g/^[^0-9]/m$—-#将文件的第12到17行内容复制10词放到当前文件的尾部:1,10g/^/12,17t$~~~~重复次数的作用—-#将chapter开始行下面的第二行的内容写道begin文件中:g/^chapter/.+2w>>begin—-:/^part2/,/^part3/g/^chapter/.+2w>>begin—-:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$。
vim命令大全
vim命令⼤全命令历史以:和/开头的命令都有历史纪录,可以⾸先键⼊:或/然后按上下箭头来选择某个历史命令。
启动vim在命令⾏窗⼝中输⼊以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的⽂件⽂件命令打开单个⽂件vim file同时打开多个⽂件vim file1 file2 file3 ...在vim窗⼝中打开⼀个新⽂件:open file在新窗⼝中打开⽂件:split file切换到下⼀个⽂件:bn切换到上⼀个⽂件:bp查看当前打开的⽂件列表,当前正在编辑的⽂件会⽤[]括起来。
:args打开远程⽂件,⽐如ftp或者share folder:e ftp://192.168.10.76/abc.txt:e \\qadrive\test\1.txtvim的模式正常模式(按Esc或Ctrl+[进⼊)左下⾓显⽰⽂件名或为空插⼊模式(按i键进⼊)左下⾓显⽰--INSERT--可视模式(不知道如何进⼊)左下⾓显⽰--VISUAL--导航命令% 括号匹配插⼊命令i 在当前位置⽣前插⼊I 在当前⾏⾸插⼊a 在当前位置后插⼊A 在当前⾏尾插⼊o 在当前⾏之后插⼊⼀⾏O 在当前⾏之前插⼊⼀⾏查找命令/text 查找text,按n健查找下⼀个,按N健查找前⼀个。
text 查找text,反向查找,按n健查找下⼀个,按N健查找前⼀个。
vim中有⼀些特殊字符在查找时需要转义 .*[]^%/?~$:set ignorecase 忽略⼤⼩写的查找:set noignorecase 不忽略⼤⼩写的查找查找很长的词,如果⼀个词很长,键⼊⿇烦,可以将光标移动到该词上,按*或#键即可以该单词进⾏搜索,相当于/搜索。
⽽#命令相当于?搜索。
:set hlsearch ⾼亮搜索结果,所有结果都⾼亮显⽰,⽽不是只显⽰⼀个匹配。
:set nohlsearch 关闭⾼亮搜索显⽰:nohlsearch 关闭当前的⾼亮显⽰,如果再次搜索或者按下n或N键,则会再次⾼亮。
gvim命令大全
将鼠标指针移到文件头
x
删除
数字x
要删除的字符个数从鼠标指针向后算
Delete键
删除
u
恢复删除的内容
dd
删除整行
数字dd
删除几行
dG
删除全文
:%s/a/b/gc ——》
y或者a
从%全文找,一直将a替换为b,
gc表示一直替换
:↑
重复上次的命令
Enter回车键
进入下一段
$
将光标移到段末
:数字j
将光标移到第几段
w
从光标处跳过所有空格到下一个字符串
b
从光标处跳过所有空格到上一个字符串
数字j
光标向下跳几行
数字k
光标向上跳几行
数字h
光标向右移动
数字l
光标向左移动
数字w
光标向右向下移动
数字b
光标向左向上移动
Ctrl+p
补全关键字
g~~
将所有小写转换为大写
guu
将所有大写转换为小写
:setf java
将文件类型设置为java文件
:X
对文件进行加密,设置密码
:q
退出编辑器
:help iccf
查看说明
:help Enter键
查看在线帮助
:help F1键
查看线帮助
:help version7
查看版本信息
Ctrl+o
重复到更远的返回
Ctrl+t
:#
在命令行的位置输出:
当前光标所在的行号和行内容
:syntax enable
加亮显示
录制以a按住shift连按两下光标所在行向后一个tab键位置shift只能作用在光标所在的行从第一个字符到最后一个字符若没有tab键则向前移动一个字符位置若有tab键则向前移动一个tab键的位置只能作用在光标所在的行从第一个字符到最后一个字符若没有tab向后移动一个字符位置若有tab则向后移动一个tab键的位置从光标处跳过所有空格到上一个字符串数字j光标向下跳几行数字k光标向上跳几行数字h光标向右移动数字l光标向左移动数字w光标向右向下移动数字b光标向左向上移动ctrlp补全关键字将所有小写转换为大写guu将所有大写转换为小写
Linux Vim编辑命令
vim(vi)是Linux中功能强大的编辑工具。
☆vim有3中主要的模式:1.normal mode:当进入vim时,默认的模式就是normal mode。
在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。
2.insert mode:进入vim输入a、i、或o键。
即可进入insert mode,此模式下可以输入文字内容。
mand-line mode:在norma lmode中输入“:”即会进入command-line mode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。
☆在normal mode下:h:将光标向左移动一格l:将光标向右移动一格j:将光标向下移动一格k:将光标向上移动一格ctrl+b:将页面向前卷动一页ctrl+f:将页面向后卷动一页0:将光标移到该行最前面$:将光标移到该行的最后面G:将光标移到最后一行的开头we或E:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。
b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。
ctrl+u:将光标向前移动半页ctrl+d:将光标向右移动半页ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行☆在command-line mode下:e 文件的路径及名称:打开指定文件a:从当前光标所在的位置的下一个字符开始输入i:在光标所在的位置插入新输入的字符o:新增加的一行,并将光标移到下一行的开头w:文件的路径及名称保存文件q:退出vim☆Vim的常用操作命令★复制文字yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制yw:可复制光标所在位置到整个单词结束的字符nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制p:可将复制的文字粘贴到当前光标所在的位置。
Vim IDE环境配置讲解
VIM IDE环境配置1 介绍要使VIM变成和VS一样的集成环境,可通过安装以下插件来实现,分别是1)Ctags2)Taglist3)GNU Global4)OmniCppComplete5)SuperTab6)Winmanager7)NERDTree8)MiniBufExplorer下面将分别介绍各个插件的安装与使用。
2 Ctags安装安装步骤:1)从/下载源代码包后,解压缩生成源代码目录。
2)进入源代码根目录执行./configure。
3)执行make。
4)编译成功后执行make install。
常用命令列表:1)$ ctags –R * ($ 为Linux系统Shell提示符)2)$ vim –t tag (请把tag替换为您欲查找的变量或函数名)3):ts (ts 助记字:tags list, “:”开头的命令为vim中命令行模式命令) 4):tp (tp 助记字:tags preview)5):tn (tn 助记字:tags next)6) Ctrl + ] (跳转到该标记的定义处)7) Ctrl + t (返回到上次跳转前位置)命令解释:1)“$ ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。
“*”表示所有文件。
2)这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vim时,会自动载入此tags文件。
Tags文件中包括这些对象的列表:1)用#define定义的宏2)枚举型变量的值3)函数的定义、原型和声明4)名字空间(namespace)5)类型定义(typedefs)6)变量(包括定义和声明)7)类(class)、结构(struct)、枚举类型(enum)和联合(union)8)类、结构和联合中成员变量或函数Vim用这个“tags”文件来定位上面这些做了标记的对象。
注意:打开文件时要在运行ctags的目录下打开,不能进入子文件夹后再打开。
vim命令大全_pdf
vim 命令(全)本章提供足够的信息使你用够使用 Vim 来做基本的编辑。
这里提供的方法不一定是高效 快捷的。
但起码是有效的。
花些时间去练习这些命令,这是后面的知识的基础。
|02.1| 第一次运行 Vim|02.2| 插入文本|02.3| 移动光标|02.4| 删除字符|02.5| 撤销与重做|02.6| 其它编辑命令|02.7| 退出|02.8| 寻求帮助下一章:|usr_03.txt| 移动前一章:|usr_01.txt| 关于本手册目录:|usr_toc.txt|--------------------------------------------------------------------------------*02.1* 第一次运行 Vim启动 Vim 的命令如下:gvim file.txt在 UNIX 操作系统中,你可以在任意命令提示符下输入这个命令。
如果你用的是 Microsoft Windows, 启动一个 MS-DOS 窗口,再输入这个命令。
无论哪一种方式,现在 Vim 开始编辑一个名为 file.txt 的文件了。
由于这是一个新建文件,你会得到一个空的窗口。
屏幕看起来会象下面这样:+---------------------------------------+|# ||~ ||~ ||~ ||~ ||"file.txt" [New file] |+---------------------------------------+('#"是当前光标的位置)以波纹线(~)开头的行表示该行在文件中不存在。
换句话说,如果 Vim 打开的文件不能充满这个显示的屏幕,它就会显示以波纹线开头的行。
在屏幕的底部,有一个消息行指示文件 名为 file.txt 并且说明这是一个新建的文件。
这行信息是临时的,新的信息可以覆盖它。
VIM 命 令gvim 命令建立一个新窗口用于编辑。
Vim编辑指令
Vim编辑指令基本命令Esc 或 Ctrl+[ 进⼊普通模式i (插⼊) a (附加) 进⼊插⼊模式wq 回车保存退出vim后⾯加上你要打开的已存在的⽂件名或者不存在(则作为新建⽂件)的⽂件名。
打开Xfce终端$ vim practice_1.txt直接使⽤vim也可以打开vim编辑器 vim进⼊命令⾏模式后输⼊:e ⽂件路径同样可以打开相应⽂件游标移动h左l右(⼩写L)j下k上w移动到下⼀个单词b移动到上⼀个单词在普通模式下使⽤下⾯的键将进⼊插⼊模式,并可以从相应的位置开始输⼊命令说明i在当前光标处进⾏编辑I在⾏⾸插⼊A在⾏末插⼊a在光标后插⼊编辑o在当前⾏后插⼊⼀个新⾏O在当前⾏前插⼊⼀个新⾏cw替换从光标所在位置后到⼀个单词结尾的字符请尝试不同的从普通模式进⼊插⼊模式的⽅法,在最后⼀⾏shiyanlou前⾯加上www.,注意每次要先回到普通模式才能切换成以不同的⽅式进⼊插⼊模式保存⽂档(命令⾏模式下保存⽂档)从普通模式输⼊:进⼊命令⾏模式,输⼊w回车,保存⽂档。
输⼊:w ⽂件名可以将⽂档另存为其他⽂件名或存到其它路径下退出vim(命令⾏模式下退出vim)从普通模式输⼊:进⼊命令⾏模式,输⼊wq回车,保存并退出编辑命令说明q!强制退出,不保存q退出wq!强制保存并退出w <⽂件路径>另存为saveas ⽂件路径另存为x保存并退出wq保存并退出普通模式下退出vim普通模式下输⼊Shift+zz即可保存退出vim删除⽂本(普通模式下删除vim⽂本信息)进⼊普通模式,使⽤下列命令可以进⾏⽂本快速删除命令说明x删除游标所在的字符X删除游标所在前⼀个字符Delete同xdd删除整⾏dw删除⼀个单词(不适⽤中⽂)d$或D删除⾄⾏尾d^删除⾄⾏⾸dG删除到⽂档结尾处d1G删⾄⽂档⾸部u撤销ndd删除光标所在位置起的多⾏n为数字yy复制光标当前所在的那⼀⾏nyy复制多⾏为n的数字p将已复制的内容粘贴到光标所在的位置的下⼀⾏⼤P将已复制的内容粘贴到光标所在位置的上⼀⾏np粘贴多⾏到光标的下⼀⾏为n的数字cttl+r重复上⼀次操作$跳到⼀⾏的尾部0跳到⼀⾏的头部gg移动到这个⽂件的第⼀⾏G跳到这个⽂件的最后⼀⾏nG跳到n⾏set nu显⽰⾏号H光标移动到屏幕的最上⽅那⼀⾏的第⼀个字符M光标移动到屏幕的中央那⼀⾏的第⼀个字符L光标移动到屏幕的最下⾯那⼀⾏的第⼀个字符vim重复命令重复执⾏上次命令在普通模式下.(⼩数点)表⽰重复上⼀次的命令操作拷贝测试⽂件到本地⽬录$ cd /home/shi$ cp /etc/protocols .游标的快速跳转普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现⾏间跳转和⾏内跳转⾏间跳转命令说明nG(n shift+g)游标移动到第 n ⾏(如果默认没有显⽰⾏号,请先进⼊命令模式,输⼊:set nu以显⽰⾏号) gg游标移动到第⼀⾏G(Shift+g)到最后⼀⾏⼩技巧:你在完成依次跳转后,可以使⽤ Ctrl+o 快速回到上⼀次(跳转前)光标所在位置,这个技巧很实⽤,⽐如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。
vim 查询命令用法
在vim中,有多种查询命令可以用来查找文本,其中比较常用的有以下几种:1. "/pattern":这个命令可以用来在当前光标所在行中查找匹配的文本,其中"pattern"表示要查找的文本。
可以使用正则表达式来进行精确匹配。
例如,"/hello"可以查找当前光标所在行中包含字符串"hello"的文本。
2. "?pattern":这个命令与上面的命令类似,不同之处在于它是一个反向查找命令,可以在当前光标所在行之前查找匹配的文本。
例如,"?hello"可以查找当前光标所在行之前包含字符串"hello"的文本。
3. "/\p{L}":这个命令可以用来查找任何一个字符集,其中"\p{L}"表示任意一个字母字符。
例如,"/\p{L}"可以查找当前光标所在行中的任何一个字母。
4. "/\w":这个命令可以用来查找任何一个单词字符,其中"\w"表示任何一个单词字符,即字母、数字和下划线。
例如,"/\w"可以查找当前光标所在行中的任何一个单词字符。
5. "/\d":这个命令可以用来查找任何一个数字字符,其中"\d"表示任何一个数字字符。
例如,"/\d"可以查找当前光标所在行中的任何一个数字字符。
除了上述命令之外,还有一些其他的查询命令可以用来查找文本,例如"/\<pattern>"、"/=\<pattern>"、"/\zs\<pattern>"等。
具体使用方法可以参考vim的官方文档或者相关的教程。
vim命令及快捷键
vim命令及快捷键[1. 关于Vim]vim是我最喜欢的编辑器,也是linux下第⼆强⼤的编辑器。
虽然emacs是公认的世界第⼀,我认为使⽤emacs并没有使⽤vi进⾏编辑来得⾼效。
如果是初学vi,运⾏⼀下vimtutor是个聪明的决定。
(如果你的系统环境不是中⽂,⽽你想使⽤中⽂的vimtutor,就运⾏vimtutor zh)[1.1 Vim的⼏种模式]正常模式:可以使⽤快捷键命令,或按:输⼊命令⾏。
插⼊模式:可以输⼊⽂本,在正常模式下,按i、a、o等都可以进⼊插⼊模式。
可视模式:正常模式下按v可以进⼊可视模式,在可视模式下,移动光标可以选择⽂本。
按V进⼊可视⾏模式,总是整⾏整⾏的选中。
ctrl+v进⼊可视块模式。
替换模式:正常模式下,按R进⼊。
[2. 启动Vim]vim -c cmd file: 在打开⽂件前,先执⾏指定的命令;vim -r file: 恢复上次异常退出的⽂件;vim -R file: 以只读的⽅式打开⽂件,但可以强制保存;vim -M file: 以只读的⽅式打开⽂件,不可以强制保存;vim -y num file: 将编辑窗⼝的⼤⼩设为num⾏;vim + file: 从⽂件的末尾开始;vim +num file: 从第num⾏开始;vim +/string file: 打开file,并将光标停留在第⼀个找到的string上。
vim --remote file: ⽤已有的vim进程打开指定的⽂件。
如果你不想启⽤多个vim会话,这个很有⽤。
但要注意,如果你⽤vim,会寻找名叫VIM的服务器;如果你已经有⼀个gvim在运⾏了,你可以⽤gvim --remote file在已有的gvim中打开⽂件。
[3. ⽂档操作]:e file --关闭当前编辑的⽂件,并开启新的⽂件。
如果对当前⽂件的修改未保存,vi会警告。
:e! file --放弃对当前⽂件的修改,编辑新的⽂件。
:e+file -- 开始新的⽂件,并从⽂件尾开始编辑。
Linux基础命令vim(底行模式)
Linux基础命令vim(底⾏模式)#只能从命令模式进⼊底⾏模式
#保存退出
:q #退出
:q! #强制退出
:w #保存
:wq #保存退出
:wq! #强制保存退出
:x #保存退出
#光标移动移动的⾏删除
:n #n 数字跳转到指定的⾏
:1d #删除第⼀⾏
:1,10d #删除多⾏
#替换跟sed⼀样
:%s#old#new#g #全局替换
:1s#admin#root#g #替换指定的⾏
:1,5s#bin#oldboy#g #替换多⾏
# ⽂件另存为
:w new1.txt #将⽂件的内容另存为⼀个新⽂件
:1,10w new2.txt #将⽂件的第⼀⾏到第⼗⾏内容另存为⼀个新⽂件
#导⼊其他⽂件内容进⼊这个⽂件
:$r /etc/hosts #导⼊/etc/hosts⽂件中的内容到此⽂件的结尾:0r /etc/hosts #导⼊/etc/hosts⽂件中的内容到此⽂件的⾏⾸
#搜索
/root #搜索root的字符串
n #向下查找
N #向上查找
/root\c #搜索的时候,忽略⼤⼩写
:noh #取消⾼亮。
vi编辑器常用的命令及快捷键
ttext 在当前行向前查找text,并将光标定位在text的第一个字符
Ttext 在当前行向后查找text,并将光标定位在text的第一个字符
vi的状态
选项 作用
:.= 打印当前行的行号
:= 打印文件中的行数
^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比
E 移到下一个字的结尾,忽略标点符号
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头
} 移到下一个段落的开头
x 删除光标处的字符,可以在x前加上需要删除的字符数目
nx 从当前光标处往后删除n个字符
X 删除光标前的字符,可以在X前加上需要删除的字符数目
nX 从当前光标处往前删除n个字符
0或| 移到当前行的第一列
n| 移到当前行的第n列
^ 移到当前行的第一个非空字符
$ 移到当前行的最后一个字符
+或return 移到下一行的第一个字符
B 移到前一个字的开头,忽略标点符号
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
e 移到下一个字的结尾
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:s/oldtext/newtext 用newtext替换oldtext
:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext
在vi中复制文本
命令 复制操作
yy 将当前行的内容放入临时缓冲区
nyy 将n行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
Linux 中 V(Vim)常用命令使用说明
Linux 中V(Vim)常用命令使用说明在linux发行版中vi 命令已经软链接到了vim一、vi的三种工作模式:命令模式、末行模式、编辑模式1. 末行模式命令w:(write)保存q:(quit)退出,如果没有保存不允许退出q!:(quit)强行退出,不保存退出wq:(write&quit)保存并退出x:保存并退出:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件:n文件名:(new)新建文件:w文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件二、打开或新建文件说明:打开一个文件,文件不存在则新建一个文件命令:vi 文件名1. 打开文件并且定位行说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾命令:vi 文件名+行数三、常用命令(命令模式下使用)1. 重复次数在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。
2. 移动和选择2.1 移动行间移动命令:行内移动命令:行数移动命令:屏幕移动命令:段落移动命令:vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。
括号切换命令:标记命令:2.2 选择(可视模式)可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。
3. 编辑操作3.1撤销和恢复撤销3.2 删除文本如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。
删除命令可以和移动命令连用,例如3.3 复制粘贴复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。
如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。
vi中的删除操作本质上就是剪切,只是没有使用p粘贴。
4. 撤销和重复4.1 缩排和重复5. 查找和替换5.1替换R命令可进入替换模式,替换完后esc退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
linux--VIM命令大全
基础在文件中移动剪切、复制和粘贴搜索替换大小写读写文件文件浏览器和 Unix 系统交互对齐Tabs/Windows分屏显示自动完成Marks缩写文本缩进语法高亮插入模式下的命令:一般使用Vim时都在正常模式下,但如果知道几个专门用于插入模式下的快捷命令,会感觉更快捷一些。
参考:help insert-index,事实上插入模式下的自动补全功能,那个才真正给力。
调整缩进在插入模式下如果希望调整行的缩进,可以<Esc>返回正常模式,>或者<调整缩进,然后使用i或者a返回插入模式下,要按3次键,下面的组合键能够实现在插入模式下的缩进调整,每次调整一个shiftwidth宽度。
这个尤其用在写if之类的缩进结构时候,很方便。
CTRL+D 减少缩进CTRL+T 增加缩进复制相邻行的内容写东西的时候经常出现相邻两行的内容很想近的情况,你可以用复制粘贴功能,也可以直接一个字符一个字符地复制。
CTRL+Y 复制上一行的相同列的字符CTRL+E 复制下一行的相同列的字符举个实际的例子,比如一行内容是:num1 is 数字在这一行下方新增加一个空白行(插入模式下在行尾回车或者正常模式下按o),光标在num1的n正下方,这时候按3下<ctrl+y>,num被复制到当前位置,输入数字2后继续<ctrl+y>,空格和汉字也能够正确被一个一个地复制下来。
粘贴剪贴板在插入模式下<CTRL+R> {0-9a-z"%#*:=}能够插入剪贴板的内容,如果想临时查看各个剪贴板的内容,可以使用<ctrl+o>:reg<回车>,会显示出各个剪贴板的内容。
当然输入这个命令很麻烦,做个快捷键吧,把下面这句放到你的vimrc里面,当然F3可以换成其他功能键,这样你在插入模式下就可以按F3列出所有剪贴板的当前内容,然后<CTRL+R>剪贴板名称吧,这样做的好处是粘贴完仍然在插入模式下。
Vi常用基本命令
进入vi的命令 (1)移动光标类命令 (1)屏幕翻滚类命令 (2)编辑插入文本类命令 (3)删除命令 (5)搜索及替换命令 (6)选项设置 (8)组合命令 (10)最后行方式命令 (14)寄存器操作 (15)进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾^ 光标移到行首f 光标移到当前光标位置后面的第一个指定的字符下F 光标移到当前光标位置前面的第一个指定的字符下t 光标移到当前光标位置后面的第一个指定的字符前T 光标移到当前光标位置前面的第一个指定的字符前% 光标移动到与当前括号匹配的括号处:n 光标移动到指定行按数字:0:移到文章的开头。
按G:移动到文章的最后。
按w:光标跳到下个字的开头按e:光标跳到下个字的字尾按b:光标回到上个字的开头按:#l:光标移到该行的第#个位置,如:5l,56l。
vim基本命令之剪切复制粘贴替换
vim基本命令之剪切复制粘贴替换⾸先是剪切(删除):剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令⽤,也可以当删除命令使⽤。
1 ⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下d就可以进⾏剪切了。
2 其他命令模式下剪切命令:3 dd:剪切当前⾏4 ndd:n表⽰⼤于1的数字,剪切n⾏5 dw:从光标处剪切⾄⼀个单⼦/单词的末尾,包括空格6 de:从光标处剪切⾄⼀个单⼦/单词的末尾,不包括空格7 d$:从当前光标剪切到⾏末8 d0:从当前光标位置(不包括光标位置)剪切之⾏⾸9 d3l:从光标位置(包括光标位置)向右剪切3个字符10 d5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)剪切11 d3B:从当前光标位置(不包括光标位置)反向剪切3个单词12 dH:剪切从当前⾏⾄所显⽰屏幕顶⾏的全部⾏13 dM:剪切从当前⾏⾄命令M所指定⾏的全部⾏14 dL:剪切从当前⾏⾄所显⽰屏幕底的全部⾏⾃⼰实践时,还发现,单独按d键,是剪切2⾏,按下nd,是剪切n+1⾏,不过⼀般使⽤还是推荐使⽤双d(即dd)来执⾏。
对于复制命令,和剪切命令⼤体相似,就是把相应的d换成y即可:⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下y就可以进⾏剪切了。
其他命令模式下剪切命令:yy:复制当前⾏nyy:n表⽰⼤于1的数字,复制n⾏yw:从光标处复制⾄⼀个单⼦/单词的末尾,包括空格ye:从光标处复制⾄⼀个单⼦/单词的末尾,不包括空格y$:从当前光标复制到⾏末y0:从当前光标位置(不包括光标位置)复制之⾏⾸y3l:从光标位置(包括光标位置)向右复制3个字符y5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)复制y3B:从当前光标位置(不包括光标位置)反向复制3个单词单独按y是复制2⾏,ny是复制n+1⾏⾄于粘贴命令最简单,在需要粘贴的光标处按下p即可。
前⾯复制其他⼈的,后⾯也是vi/vim 中可以使⽤:s 命令来替换字符串。
linuxvim编辑器的用法
linuxvim编辑器的用法linuxvim编辑器是Linux系统中常用的文本编辑器,它可以在纯文本环境下完成文本文件的编辑、创建等功能。
本文主要介绍使用linux vim编辑器时应遵循的操作要求。
要想使用vim进行文件编辑,首先要将其安装到Linux系统中。
在终端中输入以下命令即可完成安装:sudo apt-get install vim安装完成后,可以在终端中输入vim -version检查一下版本号,默认安装的是Vim 7.2版本。
二、 vim编辑器基本命令1、打开文件:在终端中输入:vim file.txt即可打开指定的文件;2、缩进:可以使用键盘上数字键上的<和>来完成缩进操作;3、查找:可以输入 /string 可以查找指定文本,输入n可以跳转到下一个指定文本处;4、换行:要将光标移动到一行的结尾处,可以使用键盘上的$符号;5、替换:替换命令为::s/old/new/g,其中old是原有的字符串,new是新的字符串;6、保存:使用快捷键 :w即可将当前文件保存;1、^:代表当前行的开始位置;4、*:表示上一次操作的文本;5、%:表示所有内容(以文件头到文件尾);6、#:表示上一条搜索的字符串;7、@:表示上一次的替换内容;8、[和]:表示上一次的复制状态;9、[:表示左端搜索;1、复制粘贴:选择你要复制的文本,使用shift+V粘贴到要复制的位置,可以复制多行文本;2、跳转行:在终端中输入:<num>:<action>,可以将光标跳转到第num行,之后可以执行自定义的操作;3、跳转列:输入c$可以将光标跳转到行尾,输入0可以将光标跳转到行首;4、删除:输入dd可以删除当前行文本,输入x可以删除光标下的一个字符;6、跳转标签:可以使用将指定标签用大写字母T来指向,如:CT可以跳转到标签处。
以上就是用linux vim编辑器时应遵循的操作步骤以及常用功能。
linuxVIM指令
linux下的vim编辑器常用的一些用法操作举例并说明作用。
没有花里胡哨的概念介绍仅以实际的使用方法举例。
一、vim常用快捷键和实用操作vim打开文件方式:**用法1:vim /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件,不存在则创建一个,默认光标会定位到上次所在位置和高亮上次高亮的内容。
用法2:vim +10 /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件并且将光标移动到第10行。
用法3:vim +/hello /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件并且高亮显示文件里所有的hello内容。
用法4:vim /tmp/myshell.sh /home/my.sh /root/a.txt 表示同时打开tmp目录下的myshell.sh、home目录下的my.sh和root目录下的a.txt文件。
vim常用的三种模式:命令模式、编辑模式、末行模式(尾行模式)1.命令模式[命令模式下无法编辑文件,只允许删除,复制,粘贴,撤销,使用快捷键等操作,文件打开时默认进入此模式]光标移动操作:特别技巧:数字+上下左右按键可以向对应方向移动光标到指定位置,如:5+向上键表示是向上移动光标5行。
用法1:shift+6或^表示移动光标到所在行的行首位置。
用法2:shift+4或&表示移动光标到所在行的行尾位置。
用法3:gg表示将光标移动到文件内容的第一行位置,这里注意是小写字母。
表示将光标移动到文件内容的最后一行位置,这里注意是大写字母。
用法5:5G表示将光标移动到文件内容的第5行位置,这里注意是大写字母。
用法6:ctrl+b或pg up表示向上翻屏。
用法7:ctrl+f或pg dn表示向下翻屏。
复制、删除、粘贴、撤销操作:用法1:yy表示复制光标所在行的整行内容。
用法2:5yy表示复制包含光标所在行向下的5行内容。
vim常用命令操作图
保存
左下上右键 hjk
$光标到行尾 0光标到行首 G光标到文档最后一行 gg光标到文档第一行 nG/:n<Enter>光标到文档第n行 n<Enter>向下移动n行 n<space>向后移动n字符 向上翻页PageUp/Ctrl+b 向下翻页PageDown/Ctrlet nonu取消行号 :r filename把filename文件里的内容插入到当前光标所在位置下 :!command 暂时离开vim,执行command命令
搜索
/str 从光标位置向下搜索str ?str 从光标位置向上搜索str n 找下一个 N 找上一个
vim
替换
:%s/abc/123/g 把abc全部替换成123 :%s/abc/123/gc 同上,但要用户一个个确认是否替换
撤销
u退回前一个动作 Ctrl+r重复前一个动作 :e! 文档还原到最原始状态
其他操作
复制/粘贴/删除
yy复制当前行 nyy复制从当前行开始的n行 p粘贴到下一行 P粘贴到上一行 D当前光标开始删除到行尾 dd删除当前行 ndd从当前行开始向后删除n行 d1G删除第1行到当前行的数据 dnG删除第n行到当前行的数据 dG删除当前行到最后一行的数据 x向后删除1个字符 nx向后删除n个字符 X向前删除1个字符
块操作
v字符选择 光标经过的字符被选中 V行选择 光标经过的行被选中 Ctrl+v块选择 矩阵方式选中 y复制被选中的数据 d删除被选中的数据
多文件编辑
vim file1 file2同时编辑两个文件file1和file2 :files列出vim当前打开的文件列表 :n编辑下一个文件 :N编辑上一个文件
多窗口操作
vmware-vim-cmd命令的应用大全
vmware-vim-cmd命令的应用大全vmware-vim-cmd vmsvc/power.getstatevmid#vmware-vim-cmd vmsvc/power.on vmid#vmware-vim-cmd vmsvc/power.off vmid#vmware-vim-cmd vmsvc/power.suspend vmid#vmware-vim-cmd vmsvc/power.reset vmid#vmware-vim-cmd vmsvc/power.shutdown vmid#vmware-vim-cmd vmsvc/power.reboot vmid#vmware-vim-cmd vmsvc/power.hibernate vmid#vmware-vim-cmd vmsvc/snapshot.create vmid# snapshot1 snapshot_description vmware-vim-cmd vmsvc/snapshot.create xxxx first_snapshot first_snapshot_1 vmware-vim-cmd vmsvc/snapshot.revert vmid# snapshotLevel snapshotIndex vmware-vim-cmd vmsvc/snapshot.revert xxxx 1vmware-vim-cmd vmsvc/snapshot.removeall vmid#vmware-vim-cmd vmsvc/snapshot.remove vmid# removeChildren snapshotLevel snapshotIndexvmware-vim-cmd vmsvc/snapshot.get vmid#vmware-vim-cmd hostsvc/maintenance_mode_entervmware-vim-cmd hostsvc/maintenance_mode_exitvmware-vim-cmd hostsvc/vmotion/vnic_set vnic#vmware-vim-cmd hostsvc/vmotion/vnic_set esxcfg-vmknic -l | grep"vmkernel_portgroup_name" | awk 'print $1'vmware-vim-cmd hostsvc/net/vswitch_add vswitch#vmware-vim-cmd hostsvc/net/vswitch_move vswitch#vmware-vim-cmd hostsvc/net/portgroup_add --nicteaming-policy=loadbalance_ip vSwitch0 Portgroup 27vmware-vim-cmd hostsvc/net/portgroup_remove vswitch# portgroup#vmware-vim-cmd hostsvc/summary/scsilunvmware-vim-cmd hostsvc/summary/hbavmware-vim-cmd hostsvc/summary/fsvolume本文章由51知识库整理共享:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Vim命令列表操纵文件Vim命令动作:e filename 打开一个新文件,可以用TAB键自动补全:w filename 保存更改。
如果不指定文件名,Vim会存为你正在编辑的文件。
如果要存为不同的文件,需要指定文件名:q 退出Vim。
如果有未保存的更改,Vim会拒绝退出。
:q! 强制退出!:wq 写文件并退出:x 几乎和:wq一样,如果你修改了文件,它会写文件并退出。
如果你没有修改文件,Vim会不写文件直接退出。
文件内的移动These Vim commands and keys work both in command mode and visual mode.Vim命令动作j or Up Arrow 向上移动一行k or Down Arrow 向下移动一行l or Right Arrow 向右移动一个字符h or Left Arrow 向左移动一个字符e 移动到一个词(word)尾E 移动到白空格(whitespace)分隔的词尾b 移动到一个词(word)的开头B 移动到白空格(whitespace)分隔的词头0 移动到行首^ 移动到一行的首个非白空格的字符$ 移动到行尾H 移动到屏幕的第一行M 移动到屏幕的中间一行L 移动到屏幕的最后一行:n 跳至屏幕的第n行插入和替换文本Vim命令动作i 在光标之前插入I 在该行行首插入a 在光标之后插入A 在该行行尾插入o 在下一行新建一行并插入O 在上一行新建一行并插入C Change the rest of the current line.r 覆盖一个字符。
在覆盖完成以后,回到命令模式。
R 进入插入模式,但是不再是插入文本,而是覆盖文本。
跟word 里insert键的作用类似ESC 退出插入/改写模式,回到命令模式。
删除文本Vim命令动作x 删除光标后的字符X 删除光标前的字符dd or :d 删除当前行进入可视模式(Visual mode)Vim命令动作v 开始定义高亮字符,用定位键(j or 向下键等)来选择要高亮的文本。
V 开始定义高亮行。
ESC 退出可视模式(visual mode)并返回命令模式编辑块文本The Vim commands marked with (V) work in visual mode, when you've selected some text. The other commands work in the command mode, when you haven't selected any text. Vim命令动作~ 改变字符的大小写。
在命令模式和可视模式下都可以工作。
在可视模式下,它用来改变高亮文本的大小写。
在命令模式下,改变光标处字符的大小写。
> (V) 右移< (V) 左移c (V) 改变高亮的文本y (V) 拖动(Yank)高亮的文本。
在Windows术语中叫做:拷贝选定的文本到剪切板d (V) 删除高亮文本。
yy or :y or Y 拖动(yank)当前行,你不必首先高亮该行。
dd or :d 删除当前行。
同样,你不必先高亮该行。
p 在windows术语中,“粘贴”“剪切板”的内容。
在Vim术语中,你“放置”“拖动(yank)”或删除的文本。
如果是字符则放在光标后面,如果是行则放在当前行下面。
P 如果是字符则放在光标前面,如果是行则放在当前行上面。
撤销(undo)和重做(redo)Vim命令动作u 撤销上一个动作U 撤销所有最近针对该行的更改。
Ctrl + r 重做搜索Vim命令动作/pattern 根据模式(pattern)搜索文件。
n 搜索同方向的下一个匹配。
N 搜索反方向的下一个匹配。
替换Vim命令动作:r s/foo/bar/a 用bar来替换foo。
r确定替换的范围,a确定替换的参数。
替换范围(r)可以是:空白(nothing)只在当前行起作用数字(number)在你指定的哪一行起作用% 整个文件参数(a)可以是:g 替换该行内所有的匹配。
如果不要该参数,Vim仅仅替换第一次的匹配。
i 在搜索模式中忽略大小写。
I 不忽略大小写。
c 对每一次替换都确认。
你可以键入y来替换这次匹配,n去跳过这次匹配,或者a来替换所有剩下的匹配,或者q来退出替换。
例子::452s/foo/bar/替换第452行首次出现的foo为bar。
:s/foo/bar/g替换当前行中所有出现的foo为bar:%s/foo/bar/g替换整个文件中所有出现的foo为bar:%s/foo/bar/gi和上面一样,不过忽略大小写。
:%s/foo/bar/gc和第三个一样,不过每次替换都要确认。
:%s/foo/bar/c对文件的每一行,替换foo的首次出现为bar并且每次替换都要确认。
配置文件在哪里当我们使用Vim时, 你需要知道一系列的配置文件. 这些配置文件的位置依赖于Vim的安装位置和你所使用的操作系统.通常, 有三个配置文件, 你是必须知道在哪里能找到的.vimrc这是Vim最主要的配置文件. 它有两个版本, 全局版本(global)和用户版本(personal)).全局vimrc文件放在你安装Vim的目录中. 你可以打开vim, 在普通模式下输入下面的命令来找出这个目录的位置:echo $VIM结果应该是这样的:Linux: /usr/share/vim/vimrc Windows: c:\program files\vim\vimrc用户版本的vimrc文件放在你的主目录下. 主目录的位置依赖于你的操作系统. Vim最初是为Unix及类Unix操作系统提供的, 所以用户版本的vimrc文件都是通过在文件名的最前面加一个点来设置成隐藏文件. 这是在类Unix上设置隐藏文件的方法, 但不适用于Microsoft Windows. 所以呢, vimrc文件与操作系统有关. 应该是这样的:Linux: /home/kim/.vimrc Windows: c:\documents and settings\kim\_vimrc不管怎么改用户版的vimrc文件, 其中的设置内容都是覆盖在全局vimrc文件中设置的内容. 这就意味着你可以不需要去改变全局vimrc文件来进行配置Vim.你可以在Vim的普通模式下输入下面的命令, 来找出Vim认为的你的系统的主目录的位置: :echo $HOMEvimrc文件包含的是ex (vi的前身) 命令, 一条命令一行. 并且vimrc文件也是增加Vim配置信息的默认方式.你的vimrc可以将其他的文件(包含着配置信息) 作为外部资源. 在vimrc文件里, 你可用以source命令来实现:source /path/to/external/file这样可以使你的vimrc文件保持整洁, 并且你的设置会更加的结构(更多的关于如何保持vimrc文件整洁的内容请参考附录B) .gvimrcgvimrc文件是专为Gvim的配置文件. 它和上面提到的vimrc文件很相似, 并且是放在同一个目录下的(也是分为用户版和全局版), 如:Linux: /home/kim/.gvimrc /usr/share/vim/gvimrc Windows: c:\documents and settings\kim\_gvimrc c:\program files\vim\这个文件是用来设置只有Gvim才能使用的GUI设置.exrc这是文件是用作与vi或ex向后兼容用的. 它也是和vimrc文件放在同一个目录, 当然也是分为用户版和全局版). 然而, 除非你想用vi兼容的模式来使用用Vim, 否则你根本就不会用到这个文件.附:配置文件一"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 一般设定""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设定默认解码set fenc=utf-8set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936" 不要使用vi的键盘模式,而是vim自己的set nocompatible" history文件中需要记录的行数set history=100" 在处理未保存或只读文件的时候,弹出确认set confirm" 与windows共享剪贴板set clipboard+=unnamed" 侦测文件类型filetype on" 载入文件类型插件filetype plugin on" 为特定文件类型载入相关缩进文件filetype indent on" 保存全局变量set viminfo+=!" 带有如下符号的单词不要被换行分割set iskeyword+=_,$,@,%,#,-" 语法高亮syntax on" 高亮字符,让其不受100列限制:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white :match OverLength '\1v.*'" 状态行颜色highlight StatusLine guifg=SlateBlue guibg=Yellowhighlight StatusLineNC guifg=Gray guibg=White""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文件设置""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 不要备份文件(根据自己需要取舍)set nobackup" 不要生成swap文件,当buffer被丢弃的时候隐藏它setlocal noswapfileset bufhidden=hide" 字符间插入的像素行数目set linespace=0" 增强模式中的命令行自动完成操作set wildmenu" 在状态行上显示光标所在位置的行号和列号set rulerset rulerformat= (%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)" 命令行(在状态行下)的高度,默认为1,这里是2set cmdheight=2" 使回格键(backspace)正常处理indent, eol, start等set backspace=2" 允许backspace和光标键跨越行边界set whichwrap+=<,>,h,l" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)set mouse=aset selection=exclusiveset selectmode=mouse,key" 启动的时候不显示那个援助索马里儿童的提示set shortmess=atI" 通过使用: commands命令,告诉我们文件的哪一行被改变过set report=0" 不让vim发出讨厌的滴滴声set noerrorbells" 在被分割的窗口间显示空白,便于阅读set fillchars=vert:\ ,stl:\ ,stlnc:\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 搜索和匹配"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 高亮显示匹配的括号set showmatch" 匹配括号高亮的时间(单位是十分之一秒)set matchtime=5" 在搜索的时候忽略大小写set ignorecase" 不要高亮被搜索的句子(phrases)set nohlsearch" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)set incsearch" 输入:set list命令是应该显示些啥?set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$" 光标移动到buffer的顶部和底部时保持3行距离set scrolloff=3" 不要闪烁set novisualbell" 我的状态行显示的内容(包括文件类型和解码)set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime("%d/%m/%y\ -\ %H:%M")} " 总是显示状态行set laststatus=2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文本格式和排版""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 自动格式化set formatoptions=tcrqn" 继承前一行的缩进方式,特别适用于多行注释set autoindent" 为C程序提供自动缩进set smartindent" 使用C样式的缩进set cindent" 制表符为4set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 不要换行set nowrap" 在行和段开始处使用制表符set smarttab""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " CTags的设定""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 按照名称排序let Tlist_Sort_Type = "name"" 在右侧显示窗口let Tlist_Use_Right_Window = 1" 压缩方式let Tlist_Compart_Format = 1" 如果只有一个buffer,kill窗口也kill掉bufferlet Tlist_Exist_OnlyWindow = 1" 不要关闭其他文件的tagslet Tlist_File_Fold_Auto_Close = 0" 不要显示折叠树let Tlist_Enable_Fold_Column = 0 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Autocommands """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示if has("autocmd")autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set numberautocmd FileType xml,html vmap <C-o><ESC>'<i<!--<ESC>o<ESC>'>o-->autocmd FileType java,c,cpp,cs vmap <C-o><ESC>'<oautocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100 autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vimautocmd BufReadPost *\ if line("'"") > 0 && line("'"") <= line("$") |\ exe "normal g`"" |\ endifendif " has("autocmd")" F5编译和运行C程序,F6编译和运行C++程序" 请注意,下述代码在windows下使用会报错" 需要去掉./这两个字符" C的编译和运行map <F5> :call CompileRunGcc()<CR>func! CompileRunGcc()exec "w"exec "!gcc % -o %<"exec "! ./%<"endfunc" C++的编译和运行map <F6> :call CompileRunGpp()<CR>func! CompileRunGpp()exec "w"exec "!g++ % -o %<"exec "! ./%<"endfunc" 能够漂亮地显示.NFO文件set encoding=utf-8function! SetFileEncodings(encodings)let b:myfileencodingsbak=&fileencodingslet &fileencodings=a:encodingsendfunctionfunction! RestoreFileEncodings()let &fileencodings=b:myfileencodingsbakunlet b:myfileencodingsbakendfunctionau BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings()" 高亮显示普通txt文件(需要txt.vim脚本)au BufRead,BufNewFile * setfiletype txt" 用空格键来开关折叠set foldenableset foldmethod=manualnnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>" minibufexpl插件的一般设置let g:miniBufExplMapWindowNavVim = 1let g:miniBufExplMapWindowNavArrows = 1let g:miniBufExplMapCTabSwitchBufs = 1let g:miniBufExplModSelTarget = 1附:配置文件二""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => General """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Sets how many lines of history VIM has to rememberset history=700" Enable filetype pluginfiletype plugin onfiletype indent on" Set to auto read when a file is changed from the outsideset autoread" With a map leader it's possible to do extra key combinations" like <leader>w saves the current filelet mapleader = ","let g:mapleader = ","" Fast savingnmap <leader>w :w!<cr>" Fast editing of the .vimrcmap <leader>e :e! ~/.vim_runtime/vimrc<cr>" When vimrc is edited, reload itautocmd! bufwritepost vimrc source ~/.vim_runtime/vimrc"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => VIM user interface """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Set 7 lines to the curors - when moving vertical..set so=7set wildmenu "Turn on WiLd menuset ruler "Always show current positionset cmdheight=2 "The commandbar heightset hid "Change buffer - without saving" Set backspace configset backspace=eol,start,indentset whichwrap+=<,>,h,lset ignorecase "Ignore case when searchingset smartcaseset hlsearch "Highlight search thingsset incsearch "Make search act like search in modern browsersset nolazyredraw "Don't redraw while executing macrosset magic "Set magic on, for regular expressionsset showmatch "Show matching bracets when text indicator is over them set mat=2 "How many tenths of a second to blink" No sound on errorsset noerrorbellsset novisualbellset t_vb=set tm=500"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Colors and Fonts """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax enable "Enable syntax hl" Set font according to systemif MySys() == "mac"set gfn=Menlo:h14set shell=/bin/bashelseif MySys() == "windows"set gfn=Bitstream\ Vera\ Sans\ Mono:h10elseif MySys() == "linux"set gfn=Monospace\ 10set shell=/bin/bashendifif has("gui_running")set guioptions-=Tset t_Co=256set background=darkcolorscheme peakseaset nonuelsecolorscheme zellnerset background=darkset nonuendifset encoding=utf8trylang en_UScatchendtryset ffs=unix,dos,mac "Default file types""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Files, backups and undo """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Turn backup off, since most stuff is in SVN, git anyway...set nobackupset nowbset noswapfile"Persistent undotryif MySys() == "windows"set undodir=C:\Windows\Tempelseset undodir=~/.vim_runtime/undodirendifset undofilecatchendtry""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Text, tab and indent related """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set expandtabset shiftwidth=4set tabstop=4set smarttabset lbrset tw=500set ai "Auto indentset si "Smart indetset wrap "Wrap lines""""""""""""""""""""""""""""""" => Visual mode related """"""""""""""""""""""""""""""" Really useful!" In visual mode when you press * or # to search for the current selection vnoremap <silent> * :call VisualSearch('f')<CR>vnoremap <silent> # :call VisualSearch('b')<CR>" When you press gv you vimgrep after the selected textvnoremap <silent> gv :call VisualSearch('gv')<CR>map <leader>g :vimgrep // ***.')elseif a:direction == 'f'execute "normal /" . l:pattern . "^M"endiflet @/ = l:patternlet @" = l:saved_regendfunction"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Command mode related """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Smart mappings on the command linecno $h e ~/cno $d e ~/Desktop/cno $j e ./cno $c e <C-\>eCurrentFileDir("e")<cr>" $q is super useful when browsing on the command linecno $q <C-\>eDeleteTillSlash()<cr>" Bash like keys for the command linecnoremap <C-A> <Home>cnoremap <C-E> <End>cnoremap <C-K> <C-U>cnoremap <C-N><Down>" Useful on some European keyboardsmap ? $imap ? $vmap ? $cmap ? $func! Cwd()let cwd = getcwd()return "e " . cwdendfuncfunc! DeleteTillSlash()let g:cmd = getcmdline()if MySys() == "linux" || MySys() == "mac"let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*", "\\1", "")elselet g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\]\\).*", "\\1", "")endifif g:cmd == g:cmd_editedif MySys() == "linux" || MySys() == "mac"let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*/", "\\1", "")elselet g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\\]\\).*\[\\\\\]", "\\1", "") endifendifreturn g:cmd_editedendfuncfunc! CurrentFileDir(cmd)return a:cmd . " " . expand("%:p:h") . "/"endfunc"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Moving around, tabs and buffers """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Map space to / (search) and c-space to ? (backgwards search)map <space> /map <c-space> ?map<silent><leader><cr> :noh<cr>" Smart way to move btw. windowsmap <C-j><C-W>jmap <C-k><C-W>kmap <C-l><C-W>l" Close the current buffermap <leader>bd :Bclose<cr>" Close all the buffersmap <leader>ba :1,300 bd!<cr>" Use the arrows to something usefullmap <right> :bn<cr>map <left> :bp<cr>" Tab configurationmap <leader>tn :tabnew<cr>map <leader>te :tabeditmap <leader>tc :tabclose<cr>map <leader>tm :tabmove" When pressing <leader>cd switch to the directory of the open buffer map <leader>cd :cd %:p:h<cr>command! Bclose call <SID>BufcloseCloseIt()function! <SID>BufcloseCloseIt()let l:currentBufNum = bufnr("%")let l:alternateBufNum = bufnr("#")if buflisted(l:alternateBufNum)buffer #elsebnextendifif bufnr("%") == l:currentBufNumnewendifif buflisted(l:currentBufNum)execute("bdelete! ".l:currentBufNum)endifendfunction" Specify the behavior when switching between bufferstryset switchbuf=usetabset stal=2catchendtry""""""""""""""""""""""""""""""" => Statusline """"""""""""""""""""""""""""""" Always hide the statuslineset laststatus=2" Format the statuslineset statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%cfunction! CurDir()let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")return curdirendfunctionfunction! HasPaste()if &pastereturn 'PASTE MODE 'elsereturn ''endifendfunction"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => Parenthesis/bracket expanding """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""vnoremap $1 <esc>`>a)<esc>`<i(<esc>vnoremap $2 <esc>`>a]<esc>`<i[<esc>vnoremap $3 <esc>`>a}<esc>`<i{<esc>vnoremap $$ <esc>`>a"<esc>`<i"<esc>vnoremap $q <esc>`>a'<esc>`<i'<esc>vnoremap $e <esc>`>a"<esc>`<i"<esc>" Map auto complete of (, ", ', [inoremap $1 ()<esc>iinoremap $2 []<esc>iinoremap $3 {}<esc>iinoremap $4 {<esc>o}<esc>Oinoremap $q ''<esc>iinoremap $e ""<esc>iinoremap $t <><esc>i"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" => General Abbrevs """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>。