vim快捷键

合集下载

vim最全快捷键总结

vim最全快捷键总结

是为性能和提升效率而设计的,并且在大多数基于unix 的系统上普遍存在。

它有大量的快捷键可用来快速导航到文件的特定位置,以便进行快速编辑。

Vim 导航基础vim <filename> # 在 Vim 中打开 <filename>:q # 退出 Vim:w # 保存当前文件:wq # 保存文件并退出 Vim:q! # 退出 Vim 并且不保存文件# ! *强制* 执行 :q,因此没有保存就退出 Vim:x # 保存文件并且退出 Vim,是 :wq 的简写版本u # 撤销CTRL+R # 重做h # 左移一个字符j # 下移一行k # 上移一行l # 右移一个字符# 在行内移动0 # 移到行首$ # 移到行尾^ # 移到行内的第一个非空白字符处# 在文本中查找/word # 光标之后的所有该词都高亮显示?word # 光标之前的所有该词都高亮显示n # 查找后将光标移到该词的下一个出现位置N # 光标移到该词的上一个出现位置:%s/foo/bar/g # 将文件每一行上的所有 'foo' 都改成 'bar':s/foo/bar/g # 将当前行上的所有 'foo' 都改成 'bar'# 跳到字符处f<字符> # 向前跳移到 <字符> 上t<字符> # 向前跳移到 <字符> 的左侧# 例如,f< # 向前跣到 < 上t< # 向前跳移到 < 的左侧# 按词移动w # 前移一个词b # 后移一个词e # 移到当前词的末尾# 移动的其它命令gg # 移到文件顶部G # 移到文件末尾:NUM # 移到第 NUM 行 (NUM 是任意数字)H # 移到屏幕顶部M # 移到屏幕中间位置L # 移到屏幕末尾模式:Vim 基于模式这个概念。

命令模式- Vim 启动后就处于这个模式,用于导航和操作命令插入模式- 用于在你的文件中进行修改可视模式- 用于高亮文本并对它们进行操作Ex 模式- 用于跳到底部的':' 提示行上输入命令i # 在光标位置前,将 Vim 切换到插入模式a # 在光标位置后,将 Vim 切换到插入模式v # 将 Vim 切换到可视模式: # 将 Vim 切换到 ex 模式<esc> # 无论你当前处于什么模式,都返回到命令模式# 复制和粘贴文本y # 复制所选的内容yy # 复制当前行d # 删除所选的内容dd # 删除当前行p # 在当前光标位置后粘贴复制的文本P # 在当前光标位置前粘贴复制的文本x # 删除当前光标位置处的字符Vim 的'语法'Vim 可以被认为是按'动词-修饰词-名词' 格式编排的一组命令:动词- 你的动作修饰词- 你如何执行你的动作名词- 你的动作所作用于的对象关于'动词','修饰词',和'名词' 的几个重要例子:# '动词'd # 删除c # 修改y # 复制v # 可视化选择# '修饰词'i # 内部的a # 周围的NUM # 数字 (NUM 是任意数字)f # 查找文本并位于其上t # 查找文本并停于其前面/ # 从光标处开始查找字符串? # 在光标前查找字符串# '名词'w # 词s # 句子p # 段落b # 块# 示例 '语句' 或命令d2w # 删除 2 个词cis # 修改段落内的内容yip # 复制段落内的内容 (复制你所在的段落)ct< # 修改直到括号开启处# 对你的当前位置直到下个括号开启处的内容进行修改d$ # 删除直到行尾一些快捷键和技巧<!--TODO: Add more!-->> # 将所选内容缩进一级< # 将所选内容取消缩进一级:earlier 15m # 将文档还原到 15 分钟前的状态:later 15m # 逆转上述命令ddp # 相邻行交换位置,先 dd 再 p. # 重复之前动作宏宏基本上来说就是可录制的动作。

Vim快捷键大全

Vim快捷键大全

Vim快捷键⼤全总结⼀下笔记,与喜欢vim的朋友分享。

vim是我最喜欢的编辑器,也是linux下第⼆强⼤的编辑器。

虽然emacs是公认的世界第⼀,我认为使⽤emacs并没有使⽤vi进⾏编辑来得⾼效。

如果是初学vi,运⾏⼀下vimtutor是个聪明的决定。

(如果你的系统环境不是中⽂,⽽你想使⽤中⽂的vimtutor,就运⾏vimtutor zh)正常模式:可以使⽤快捷键命令,或按:输⼊命令⾏。

插⼊模式:可以输⼊⽂本,在正常模式下,按i、a、o等都可以进⼊插⼊模式。

可视模式:正常模式下按v可以进⼊可视模式,在可视模式下,移动光标可以选择⽂本。

按V进⼊可视⾏模式,总是整⾏整⾏的选中。

ctrl+v进⼊可视块模式。

替换模式:正常模式下,按R进⼊。

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中打开⽂件。

:e file --关闭当前编辑的⽂件,并开启新的⽂件。

如果对当前⽂件的修改未保存,vi会警告。

:e! file --放弃对当前⽂件的修改,编辑新的⽂件。

:e+file -- 开始新的⽂件,并从⽂件尾开始编辑。

:e+n file -- 开始新的⽂件,并从第n⾏开始编辑。

如何使用Vim进行代码编辑

如何使用Vim进行代码编辑

如何使用Vim进行代码编辑引言:Vim是一款高度可定制的文本编辑器,广泛用于程序员和系统管理员之间的代码编辑和文本处理任务。

它具有强大的功能和灵活的操作方式,可以大大提高编码效率。

本文将介绍如何在Vim 中进行代码编辑,并列举一些常用的技巧和快捷方式,帮助读者更好地使用Vim编辑器。

第一章:Vim基础1.1 安装和启动Vim- 下载和安装Vim的最新版本;- 运行终端,并输入“vim”命令启动Vim编辑器;- 进入Vim的命令模式并开始编辑代码。

1.2 Vim的基本模式- 命令模式:用于执行各种编辑命令;- 插入模式:用于实际编辑文本;- 可视模式:用于选择和操作文本块。

第二章:Vim编辑技巧2.1 移动光标的快捷方式- 使用h、j、k、l键分别向左、向下、向上、向右移动光标;- 使用gg和G快速在文件的开头和结尾之间切换;- 使用Ctrl+f和Ctrl+b在文本之间快速滚动。

2.2 文本编辑和修改- 使用i和a命令进入插入模式,用于在当前光标处开始编辑;- 使用o和O命令在当前行之后或之前插入新行并进入插入模式;- 使用d和p命令删除和粘贴文本。

2.3 撤销和重做操作- 使用u和Ctrl+r命令撤销和重做上一次操作;- 使用U快速撤销对整行的修改;- 使用.命令重复上一次的修改操作。

第三章:Vim的高级功能3.1 多文件编辑- 使用:sp和:vsp命令在同一个窗口中同时打开多个文件;- 使用Ctrl+w+h、Ctrl+w+j、Ctrl+w+k和Ctrl+w+l快捷方式在不同窗口之间切换;- 使用:bn和:bp命令在不同的缓冲区之间切换。

3.2 快速搜索和替换- 使用/和?命令分别进行向前和向后的快速搜索;- 使用:%s/old/new/g命令进行全局搜索和替换;- 使用:n和:N命令在不同的匹配项之间跳转。

3.3 定制Vim编辑器- 创建.vimrc文件并添加个人配置选项;- 定制快捷键和颜色方案;- 下载和安装插件以增强Vim的功能。

vim快捷键清空文件所有内容

vim快捷键清空文件所有内容

vim快捷键清空⽂件所有内容
vim清空⽂件所有内容
在使⽤vim编辑器的时候,有时候编辑⼀个⽂件,⽽⽂件内容⽐较多,如果需要快速清空整个⽂件,可以使⽤⼀下命令:
在命令模式下,⾸先执⾏
gg
这⾥是跳⾄⽂件⾸⾏
再执⾏:
dG
也就是直接按 ggdG
这样就清空了整个⽂件!
还有⼀种⽅法就要退出VIM,然后使⽤echo > file ,这样也能快速清空⽂件内容,当然你也可以删除了这个⽂件再新建⼀个就是了。

vim搜索设置⾼亮
linux vim打开⽂档搜索字符串时,设置被搜索到字符串⾼亮显⽰。

有两种⽅法:
1、临时设置:vim打开⽂档-->命令⾏形式输⼊set hlsearch。

缺点:关闭⽂档后,下次打开,⼜需要重新设置⼀遍。

2、永久设置(推荐):在~/.vimrc中配制
vim ~/.vimrc
在⽂件中加上set hlsearch
然后保存退出便可。

优点:⼀次设置,永久⽣效。

效果如下:。

Vim快捷键大全

Vim快捷键大全
注:以上移动命令是行内有效
删除命令:
x; 删除当前光标所在字符,dl 删除当前字符, dl=x 3x; 删除当前光标所在字符开始向后三个字符 X; 删除当前光标所在字符的前一个字符,dh 删除前一个字符,X=dh ce; 删除当前光标所在字符到一个单词末尾之间的字符,并进入插入模式 cE; 删除当前光标所在字符到一个单词(以空白符分隔)末尾之间的字符,并进入插入模式 cw; 删除当前光标所在字符到一个单词末尾之间的字符,并进入插入模式 cW; 删除当前光标所在字符到一个单词(以空白符分隔)末尾之间的字符,并进入插入模式 c^; 删除当前光标所在字符到当前行第一个非空字符之间的字符,并进入插入模式 c0; 删除当前光标所在字符到行首的字符,并进入插入模式 c$; 删除当前光标所在字符所在位置到行尾之间的字符,并进入插入模式 dw; 删除当前光标所在的整个单词 dW; 删除当前光标所在的整个单词(以空白符分隔) d^; 删除当前光标所在字符到当前行第一个非空字符之间的字符 d0; 删除当前光标所在字符到行首的字符 d$; 删除当前字符至行尾 D; 删除当前字符至行尾,D=d$ dG; 删除当前字符到文件尾 dd; 删除当前行 dj; 删除上一行 dk; 删除下一行 10dd; 删除当前行开始的10行
查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索。 *相当于/搜索,而#命令相当于?搜索。 还 可 以 在 这 两 个 命 令 前 加 一 个 命 令 计数: "3*"查找当前光标下的 word 的第三次出现。 注意"*"和"#"命令会在内部使用这些标记 word 开始和结束的特殊标记来查找整个的 word(你可以 用"g*"和"g#"命令来同时匹配那些包含在其它 word 中的字串。)

VIM使用快捷键总结

VIM使用快捷键总结

VIM使用快捷键总结1.光标移动:-h:左移一个字符-j:下移一行-k:上移一行-l:右移一个字符-0:移动到行首-^:移动到行首第一个非空字符-$:移动到行尾- gg:移动到文件开头-G:移动到文件末尾-w:向前跳至下一个单词的开头-e:向后跳至下一个单词的结尾-b:向前跳至上一个单词的开头-(:向前移动一个句子-):向后移动一个句子-{:向前移动一个段落-}:向后移动一个段落2.插入、删除、复制与粘贴:-i:在当前光标处插入-I:在当前行首插入-a:在当前光标后插入-A:在当前行尾插入-o:在当前行下方插入新行-O:在当前行上方插入新行-x:删除当前光标处的字符- dd:删除当前行- dw:删除一个单词-d$:删除从光标到行尾的内容- yy:复制当前行- yw:复制一个单词-p:粘贴复制的内容-u:撤销上一步操作- Ctrl+r:重做上一步操作3.与替换:-/:-n:跳至下一个结果-N:跳至上一个结果- :s/old/new/g:在当前行替换第一个匹配项- :s/old/new/gc:在当前行替换所有匹配项,并进行确认4.文件操作:-:w:保存文件-:q:关闭文件-:q!:强制关闭文件- :wq:保存并关闭文件- :e filename:打开filename文件- :bn:下一个buffer- :bp:上一个buffer- :bd:关闭buffer- :sp filename:水平分屏打开filename- :vsp filename:垂直分屏打开filename- Ctrl+w:窗口切换5.撤销与重做:-u:撤销上一步操作- Ctrl+r:重做上一步操作-U:撤销对整行的修改6.选中与复制:-v:进入可视模式-V:可视行模式- Ctrl+v:可视块模式-y:复制选中内容-d:删除选中内容7.块操作:- Ctrl+v:进入可视块模式-I:在选中块行首插入-A:在选中块行尾插入-x:删除选中块-y:复制选中块-d:删除选中块8.折叠:- zf+光标移动:创建折叠- za:打开/关闭折叠- zc:关闭折叠- zo:打开折叠9.操作历史:- :earlier 10s:恢复到10秒前的状态- :later 10s:撤销到10秒后的状态10.多窗口操作:- Ctrl+w s:水平分割- Ctrl+w v:垂直分割- Ctrl+w j:光标移至下方窗口- Ctrl+w k:光标移至上方窗口- Ctrl+w h:光标移至左边窗口- Ctrl+w l:光标移至右边窗口- Ctrl+w =:调整窗口尺寸相等- Ctrl+w _:窗口最大化(水平方向)- Ctrl+w ,:窗口最大化(垂直方向)。

vim常用快捷键

vim常用快捷键

vim 常⽤快捷键
基本配置
查找替换操作在当前⽂档中快速搜索
在命令模式输⼊,跳到下⼀个,跳到上⼀个。

快速全局替换字符
在命令模式输⼊。

其中代表全局替换global 。

跳转操作快速跳转到某⼀⾏
在命令模式输⼊ ,快速跳转到第⼀⾏
在命令模式下输⼊。

快速跳转到最后⼀⾏在命令模式下输⼊。

快速跳转到⾏⾸在命令模式下输⼊。

快速跳转到⾏尾
在命令模式下输⼊。

分屏操作
纵向分屏在命令⾏模式下输⼊,其中按键可以进⾏补全。

横向分屏在命令⾏模式下输⼊,其中按键可以进⾏补全。

分屏操作中,利⽤进⾏各个窗⼝之间的跳转。

阅读代码必装:的使⽤代码折叠功能
⾸先在中设置添加。

然后在代码中按即可将⼤括号对应的部分代码折叠,折叠好了以后,按可解开折叠。

代码⾃动对齐功能
按、、即可实现代码⾃动对齐。

持续更新中.../要查找的字符串n shift + n :%s /要替换的字符/替换字符/g /g :⾏数gg shift + g shift + 6shift + 4:sp 要操作的另⼀个⽂件名tab :vsp 要操作的另⼀个⽂件名tab ctrl + w ctags .vimrc set fdm=indent # 更多的缩进表⽰更⾼级的折叠zc zo gg =G。

vim阅读c++代码的快捷键

vim阅读c++代码的快捷键

vim阅读c++代码的快捷键未完,待总结1. ⾸先适⽤ctags建⽴当前⼯作⽬录的标签:cd /home/wanglc/WorkDirectoryctags -R or ctags -R *命令结束以后,会⽣成⼀个tags⽂件。

还有⼀个:ctags --sort=yes -R ,可以是ctags查找更快速,适⽤⼆分查找法,个⼈觉得这应该做成⼀个默认的选项。

2. 将这个⽣成的tags⽂件配置到vim中去。

⽅法如下:vi /etc/vimrc打开以后,添加以下语句:set tags=/home/wanglc/WorkDirectory/tagssource /etc/vimrc3. 配置vim的缩进,符合语⾔规则set cindent "设置c风格的缩进4. 配置⾃动代码补全功能在编写代码的时调⽤CTRL+P、CTRL+N也会⾃动搜索tag信息来进⾏补齐。

5. 设置⿏标set mouse=aset scroll=5Ctrl+[⿏标点击函数名] 跳转到函数定义Ctrl+[⿏标右击函数名] 返回原处改正程序中的错误6. 在VIM编辑器中使⽤":make"就可以编译程序,当然其前提是在当前⽬录下有Makefile⽂件。

运⾏完":make"之后,如果程序中有错误,就会显⽰出来。

此时,光标会⾃动指向第⼀个出现错误的地⽅,⽽且你还可以看到错误的提⽰。

其他命令:> ":cl" 列出错误> ":cn" 跳到下⼀个错误> ":cp" 跳到上⼀个错误> ":cnew" 跳到第⼀个错误提⽰:通过设置"errorformat"的值,可以让VIM识别出编译器(⾮gcc)的出错提⽰。

"errorformat"的值是⼀个字符串,它的格式和C语⾔的scanf的字符串格式相似。

IDEAVIM常用快捷键总结和使用说明

IDEAVIM常用快捷键总结和使用说明

IDEAVIM常⽤快捷键总结和使⽤说明---title: ideavim常⽤快捷键总结和使⽤tags:grammar_cjkRuby: true---#### `待办`ideavim⽤于编程的常⽤快捷键说明常⽤快捷键插⼊(光标前)i 和插⼊⾏⾸ I插⼊(光标后)a和插⼊⾏尾A光标按段移动{}跳转到⽅法实现位置 ctl+ alt +b查看实现⽅法ctrl+I跳转到代码段⾸和代码段尾 ctrl+[]跳转到⾏尾$ 跳转到⾏⾸^,从光标位置到匹配的括号%,从光标位置到⾏⾸0(不包含空⽩)f+字符,跳转到光标后第⼀个和字符匹配的字符 ,从光标处删除到指定字符df.(⼩数点)重复刚才的命令F+字符,跳转到光标前第⼀个和字符匹配的字符/ xxx 跳转到光标后第⼀个匹配的字符串刪除:删除引号内到内容(不包含引号),di'或者di",删除引号内的内容(包含引号)删除光标后本⾏所有内容 D移动:⽂本⾏向左移动和⽂本⾏向右移动<< >>常⽤撤销命令u是撤销r 撤销撤销操作显⽰⽂档的变量和⽅法名称提供跳转ctrl+o最近打开的⽂件 Ctrl+e快速打开和隐藏⼯程⾯板 alt+1打开当前光标所在处⽂档 ctrl+shift+space设置以多少⾏为缓冲滚动 :set so=5ctrl+shift+insert 选择从粘贴板粘贴使⽤标记:标记命令使⽤标记当你⽤”G”命令从⼀个地⽅跳转到另⼀个地⽅时,Vim会记得你起跳的位置。

这个位置在Vim中是⼀个标记。

使⽤命令”` `”可以使你跳回到刚才的出发点。

“` `”命令可以在两点之间来回跳转。

CTRL-O命令是跳转到你更早些时间停置光标的位置(提⽰:O意为older). CTRL-I则是跳回到后来停置光标的更新的位置(提⽰:I在键盘上位于O前⾯)。

注:使⽤CTRL-I 与按下键⼀样。

具名标记命令”ma”将当前光标下的位置名之为标记”a”。

常用的GVIM指令

常用的GVIM指令

在当前Vim中开始编辑另一个文件。Vim会关闭当前正在编辑的文件打开指定的新文件进行编辑。 在启动Vim时就指定要编辑多个文件 开始下一个文件的编辑 保存当前文件并开始下一个文件的编辑 回到前一个文件 移到最后一个文件 移到第一个文件 重新定义一个文件列表 在两个文件间快速切换 生成备份文件
上下分割窗口 关闭当前窗口。:quit和ZZ都会关闭窗口,但是:close可以阻止你关闭最后一个Vim 关闭当前窗口外的所有窗口 打开第2个窗口同时开始编辑two.c 开始编辑一个新的缓冲区 垂直分割窗口 切换当前活动窗口。后面可以加上h\j\k\l\t\b 关闭所有窗口 保存所有被修改的窗口 上下3个窗口打开这3个文件 左右3个窗口打开这4个文件 查看2个文件的不同
简单搜索/替换
/string :%s/A/B 光标处按* 光标处按#
改变命令
c cw c$
Visual Mode
v shift+v CTRL+v shift+i或a+输入+Esc p y :syntax enable
编辑多个文件
:edit A.txt vim 1.c 2.c 3.c :next :wnext :previous :last :first :args 5.c 6.c 7.h CTRL-~ :set backup
搜索一个字符串 将字符串A全部替换成字符串B 取当前光标所在的word并将它作为目标字符串进行搜索 *的反向版
改变命令 改变一个word,意思时删除一个word并置身与Insert Mode 改变当前光标到行尾的内容
进入Visual Mode。移动光标以覆盖你想操纵的文本范围。 进入可视 行mode 。 进入可视 块mode。 在可视 行Mode同时对几行进行相同的插入 找回被删除的内容 复制 打开颜色

gvim快捷键

gvim快捷键

一、vim的模式。

vim常用的模式有:模式的转换:①其它模式==>正常模式按Esc键②正常模式==>插入模式按i 在光标前插入按I 在行首插入按a 在光标后插入按s 删除光标所在的字符再插入按A 在行末插入按o 在当前行之下xx行按O 在当前行之上xx行按S 删除光标所在行再插入③正常模式==>命令模式按:(shift 加分号)④正常模式==>可视模式按v 可视模式按V 可视块模式二、打开和退出:e test.txt打开test.txt文件进行编辑,文件不存在则创建。

:wxx,但不退出vim编辑器。

:q不xx,退出vim编辑器。

:wq保存文档然后退出vim编辑器。

按ZZ(注意Z是大写的,并且不是在命令模式)或者:x效果是一样的。

:q!放弃所有修改强制退出,按:q不能退出时就试试这个吧。

三、光标的移动这里说的光标移动是指在正常模式下光标的移动。

最简单是方向键,它即使在插入模式下仍可使用,但不是最方便。

h 在当前行向左移动一个字符,或者Backspace。

j 移动到下一行,或者Enter。

k 移动到上一行,或者-号。

l 在当前行向右移动一个字符,或者空格键Space。

Ctrl +f 向前滚动一页,或者PageDown。

Ctrl +b 向后滚动一页,或者PageUp。

0(零)移至行首(包含空白字符,如缩进的空格),或是Home 键。

$移至行尾,或End 键。

^移到行首第一个非空白字符。

G 移动到文档末尾,或者gg 移动到文档开头。

w 移动到下一word的开头。

b 移动到上一word的开头。

e 移动到本word或者下个word的末尾。

ge 移动到上个word的末尾。

大写的W B E 和w b e 效果一样但会忽略像. -等特殊字符。

中文因为是连在一起的,所以如果没有空格或者数字、英文标点的话,将视为一个word。

(光标移至句首,句子是以. ? !标点来判断的。

)光标移至句尾{光标移至段落的开头,段落是以空白行来判断的。

Gvim快捷键

Gvim快捷键

Gvim快捷键1 vim#在命令⾏中输⼊vim,进⼊vim编辑器2 i#按⼀下i键,下端显⽰ --INSERT--#插⼊命令,在vim中可能任意字符都有作⽤3 Esc#退出i(插⼊)命令进⾏其它命令使⽤4 :r filename#读⼊⼀个⽂件内容,并写⼊到当前编辑器中5 :w newfilename#将该编辑器中的内容写⼊到⼀个新⽂件中6 :w#在编辑的过程中保存⽂件,相当于word中的ctrl+s7 :! command暂时离开 vi 到指令列模式下执⾏ command 的显⽰结果!例如:!ls#在编辑过程中执⾏shell命令ls8 :sh#进⼊shell命令⾏,执⾏完命令后ctrl+d退出重新进⼊vim编辑继续编辑在shell命令下,执⾏ctral+l完成清屏9 :wq#保存⽂件并退出10 ZZ#保存⽂件并退出,同上⼀个命令,注意⼤写11 :q!#强制退出,不保存12 :set number或者:set nu#使编辑中的⽂件显⽰⾏号13 :set nonumber或者:set nonu#与上⼀条命令相反,不显⽰⾏号14 :help i#查看插⼊命令帮助15 u#撤消上⼀步操作16 /Fedora#查找Fedora字符17 :s /Fedora/Redhat#将Fedora字符替换为Redhat(只替换在光标所在的⾏)18 dw#删除单词dd#删除⾏19 o#打开空⽩⼀⾏20 vim + filename#进⾏⽂件最后⼀⾏进⾏编辑21 vim +n filename#进⼊⽂件第n⾏进⾏编辑22 :1, s/redhat/fedora# 号表⽰当前⾏,即光标所在⾏#将第1⾏到当前⾏( )第⼀次出现的redhat字符代替为fedora23 :1, s/redhat/fedora/g#将第1⾏到当前⾏( )所有出现的redhat字符代替为fedora,g全局标志24 :1,$s/redhat/fedora/g#$表⽰最后⼀⾏#将第1⾏到最后⼀⾏所有出现的redhat字符代替为fedora25 :%s/redhat/fedora/g#同上⼀个命令26 :%s/\/fedora/g#将第1⾏到最后⼀⾏所有出现的redhat字代替为fedora#字,⽽不是字符27 :f#显⽰⽂件内容,状态等等#同ctrl+g命令28 :e!#当前⽂件,返回到上次保存:e file#切换编辑⽂件29 :n#当编辑时有多个⽂件(⽐如vim file1 file2)时切换到下⼀个⽂件,与:e file 结合使⽤VIM命令⼤全光标控制命令命令光标移动h 向左移⼀个字符j 向下移⼀⾏k 向上移⼀⾏l 向右移⼀个字符G 移到⽂件的最后⼀⾏w 移到下⼀个字的开头W 移到下⼀个字的开头,忽略标点符号b 移到前⼀个字的开头B 移到前⼀个字的开头,忽略标点符号L 移到屏幕的最后⼀⾏M 移到屏幕的中间⼀⾏H 移到屏幕的第⼀⾏e 移到下⼀个字的结尾E 移到下⼀个字的结尾,忽略标点符号( 移到句⼦的开头) 移到句⼦的结尾{ 移到段落的开头} 移到下⼀个段落的开头0(数字), | 移到当前⾏的第⼀列^ 移到当前⾏的第⼀个⾮空字符$ 移到当前⾏的最后⼀个字符+, Enter 移到下⼀⾏的第⼀个字符- 移到前⼀⾏的第⼀个⾮空字符在 vi 中添加⽂本命令插⼊动作a 在光标后插⼊⽂本A 在当前⾏插⼊⽂本i 在光标前插⼊⽂本I 在当前⾏前插⼊⽂本o 在当前⾏的下边插⼊新⾏O 在当前⾏的上边插⼊新⾏s 删除光标所在处字符,并进⼊插⼊模式S 删除光标所在的⾏,并进⼊插⼊模式:r file 读⼊⽂件 file 内容,并插在当前⾏后:nr file 读⼊⽂件 file 内容,并插在第 n ⾏后Esc 回到命令模式^v char 插⼊时忽略 char 的指定意义,这是为了插⼊特殊字符在 vi 中删除⽂本命令删除操作x 删除光标处的字符dw 删⾄下⼀个字的开头dG 删除⾏,直到⽂件结束dd 删除整⾏db 删除光标前⾯的字:n,md 从第 m ⾏开始往前删除 n ⾏d, d$ 从光标处删除到⾏尾^h, backspace 插⼊时,删除前⾯的字符^w 插⼊时,删除前⾯的字修改 vi ⽂本每个命令前⾯的数字表⽰该命令重复的次数命令替换操作rchar ⽤ char 替换当前字符R text escape ⽤ text 替换当前字符直到按下 Esc 键stext escape ⽤ text 代替当前字符S 或 cctext escape ⽤ text 代替整⾏cwtext escape 将当前字改为 textCtext escape 将当前⾏余下的改为 textcG escape 修改⾄⽂件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为 text 在 vi 中查找与替换命令查找与替换操作/text 在⽂件中向前查找 texttext 在⽂件中向后查找 textn 在同⼀⽅向重复查找N 在相反⽅向重复查找ftext 在当前⾏向前查找 textFtext 在当前⾏向后查找 textttext 在当前⾏向前查找 text,并将光标定位在 text 的第⼀个字符Ttext 在当前⾏向后查找 text,并将光标定位在 text 的第⼀个字符:set ic 查找时忽略⼤⼩写:set noic 查找时对⼤⼩写敏感:ranges/pat1/pat2/g ⽤ newtext 替换 oldtext:m,ns/oldtext/newtext 在 m ⾏通过 n,⽤ newtext 替换 oldtext& 重复最后的 :s 命令:g/text1/s/text2/text3 查找包含 text1 的⾏,⽤ text3 替换 text2:g/text/command 在所有包含 text 的⾏运⾏ command 所表⽰的命令:v/text/command 在所有不包含 text 的⾏运⾏ command 所表⽰的命令在 vi 中复制⽂本命令复制操作yy 将当前⾏的内容放⼊临时缓冲区nyy 将 n ⾏的内容放⼊临时缓冲区p 将临时缓冲区中的⽂本放⼊光标后P 将临时缓冲区中的⽂本放⼊光标前"(a-z)nyy 复制 n ⾏放⼊名字为圆括号内的可命名缓冲区,省略 n 表⽰当前⾏"(a-z)ndd 删除 n ⾏放⼊名字为圆括号内的可命名缓冲区,省略 n 表⽰当前⾏"(a-z)p 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏后"(a-z)P 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏前在 vi 中撤消与重复命令撤消操作u 撤消最后⼀次修改U 撤消当前⾏的所有修改重复最后⼀次修改, 以相反的⽅向重复前⾯的 f、F、t 或 T 查找命令; 重复前⾯的 f、F、t 或 T 查找命令"np 取回最后第 n 次的删除(缓冲区中存有⼀定次数的删除内容,⼀般为 9) n 重复前⾯的 / 或 ? 查找命令N 以相反⽅向重复前⾯的 / 或 ? 命令保存⽂本和退出 vi命令保存和/或退出操作:w 保存⽂件但不退出 vi:w file 将修改保存在 file 中但不退出 vi:wq 或 ZZ 或 :x 保存⽂件并退出 vi:q! 不保存⽂件,退出 vi:e! 放弃所有修改,从上次保存⽂件开始再编辑vi 中的选项选项作⽤:set all 打印所有选项:set nooption 关闭 option 选项:set nu 每⾏前打印⾏号:set showmode 显⽰是输⼊模式还是替换模式:set autoindent 继承前⼀⾏的缩进⽅式,特别适⽤于多⾏注释:set smartindent 为C程序提供⾃动缩进:set list 显⽰制表符(^I)和⾏尾符号:set ts=8 为⽂本输⼊设置 tab stops:set window=n 设置⽂本窗⼝显⽰ n ⾏:set number 显⽰⾏数:set nonumber 取消显⽰⾏数vi 的状态选项作⽤: = 打印当前⾏的⾏号:= 打印⽂件中的⾏数ctrl+g 显⽰⽂件名、当前的⾏号、⽂件的总⾏数和⽂件位置的百分⽐:l 使⽤字母 "l" 来显⽰许多的特殊字符,如制表符和换⾏符在⽂本中定位段落和放置标记选项作⽤{ 在第⼀列插⼊ { 来定义⼀个段落[[ 回到段落的开头处]] 向前移到下⼀个段落的开头处m(a-z) ⽤⼀个字母来标记当前位置,如⽤ mz 表⽰标记 z'(a-z) 将光标移动到指定的标记,如⽤ 'z 表⽰移动到 z在 vi 中连接⾏选项作⽤J 将下⼀⾏连接到当前⾏的末尾nJ 连接后⾯ n ⾏光标放置与屏幕调整选项作⽤H 将光标移动到屏幕的顶⾏nH 将光标移动到屏幕顶⾏下的第 n ⾏M 将光标移动到屏幕的中间L 将光标移动到屏幕的底⾏nL 将光标移动到屏幕底⾏上的第 n ⾏^e(ctrl+e) 将屏幕上滚⼀⾏ctrl+y 将屏幕下滚⼀⾏ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b 将屏幕上滚⼀页ctrl+f 将屏幕下滚⼀页ctrl+l 重绘屏幕z-return 将当前⾏置为屏幕的顶⾏nz-return 将当前⾏下的第 n ⾏置为屏幕的顶⾏z 将当前⾏置为屏幕的中央nz 将当前⾏上的第 n ⾏置为屏幕的中央z- 将当前⾏置为屏幕的底⾏nz- 将当前⾏上的第 n ⾏置为屏幕的底⾏vi 中的 shell 转义命令选项作⽤:!command 执⾏ shell 的 command 命令,如 :!ls:!! 执⾏前⼀个 shell 命令:r!command 读取 command 命令的输⼊并插⼊,如 :r!ls 会先执⾏ ls,然后读⼊内容:w!command 将当前已编辑⽂件作为 command 命令的标准输⼊并执⾏ command 命令,如 :w!grep all:cd directory 将当前⼯作⽬录更改为 directory 所表⽰的⽬录:sh 将启动⼀个⼦ shell,使⽤ ^d(ctrl+d) 返回 vi:so file 在 shell 程序 file 中读⼊和执⾏命令vi 中的宏与缩写(避免使⽤控制键和符号,不要使⽤字符 K、V、g、q、v、*、= 和功能键)选项作⽤:map key command_seq 定义⼀个键来运⾏ command_seq,如 :map e ea,⽆论什么时候都可以 e 移到⼀个字的末尾来追加⽂本:map 在状态⾏显⽰所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义⼀个缩写,使得当插⼊ string1 时,⽤ string2 替换 string1。

Linux中vim的粘贴复制快捷键的使用

Linux中vim的粘贴复制快捷键的使用

Linux中vim的粘贴复制快捷键的使⽤参考⾃maowang的随笔剪切(删除):剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令⽤,也可以当删除命令使⽤。

⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下d就可以进⾏剪切了。

其他命令模式下剪切命令:dd:剪切当前⾏ndd:n表⽰⼤于1的数字,剪切n⾏dw:从光标处剪切⾄⼀个单⼦/单词的末尾,包括空格de:从光标处剪切⾄⼀个单⼦/单词的末尾,不包括空格d$:从当前光标剪切到⾏末d0:从当前光标位置(不包括光标位置)剪切之⾏⾸d3l:从光标位置(包括光标位置)向右剪切3个字符d5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)剪切d3B:从当前光标位置(不包括光标位置)反向剪切3个单词dH:剪切从当前⾏⾄所显⽰屏幕顶⾏的全部⾏dM:剪切从当前⾏⾄命令M所指定⾏的全部⾏dL:剪切从当前⾏⾄所显⽰屏幕底的全部⾏另外:单独按d键,是剪切2⾏,按下nd,是剪切n+1⾏,不过⼀般使⽤还是推荐使⽤双d(即dd)来执⾏。

复制:⾸先,可以在命令模式下输⼊v进⼊⾃由选取模式,选择需要剪切的⽂字后,按下d就可以进⾏剪切了。

其他命令模式下剪切命令:yy:复制当前⾏nyy:n表⽰⼤于1的数字,复制n⾏yw:从光标处复制⾄⼀个单⼦/单词的末尾,包括空格ye:从光标处复制⾄⼀个单⼦/单词的末尾,不包括空格y$:从当前光标复制到⾏末y0:从当前光标位置(不包括光标位置)复制之⾏⾸y3l:从光标位置(包括光标位置)向右复制3个字符y5G:将当前⾏(包括当前⾏)⾄第5⾏(不包括它)复制y3B:从当前光标位置(不包括光标位置)反向复制3个单词单独按y是复制2⾏,ny是复制n+1⾏。

粘贴:在需要粘贴的光标处按下p即可。

vim常用快捷键和命令

vim常用快捷键和命令

vim常⽤快捷键和命令vim编辑器上古神器,不记两个快捷键和命令,都不好意思出来写bug~常⽤操作常⽤快捷键i或a //进⼊可编辑的状态p //粘贴u //撤销ctrl + r //反撤销yy //复制光标所在的整⾏dd //删除当前⾏dG //删除所有⾏ (注意是同时按住d_shift_g)shift+d //删除当前⾏光标后的内容gg //光标到第⼀⾏GG //光标到最后⼀⾏00 //快速到⾏⾸shift+6 //快速到⾏⾸shift+4 //快速到⾏尾ctrl-f //下⼀页(forward)ctrl-b //上⼀页(backward):⾏号 //定位到指定⾏:命令窗输⼊⾏号/关键字 // 模糊查询:命令窗输⼊斜杠后接关键字即可(n查看下⼀个匹配,N查看上⼀个):set number //显⽰⾏号:set nonumber //隐藏⾏号查询操作主要是操作光标,快速定位到你需要的位置gg //光标到第⼀⾏GG //光标到最后⼀⾏00 //快速到⾏⾸shift+6 //快速到⾏⾸shift+4 //快速到⾏尾:⾏号 //定位到指定⾏:命令窗输⼊⾏号/关键字 //模糊查询:命令窗输⼊斜杠后接关键字即可(按下⼩写n查看下⼀个匹配):set number //显⽰⾏号:set nonumber //隐藏⾏号ctrl-f //下⼀页(forward)ctrl-b //上⼀页(backward)ctrl-e //下⼀⾏ctrl-y //上⼀⾏ctrl+d //下翻半页ctrl+u //上翻半页zz //让光标所杂的⾏居屏幕中央zt //让光标所杂的⾏居屏幕最上⼀⾏ t=topzb //让光标所杂的⾏居屏幕最下⼀⾏ b=bottom拷贝和粘贴yy //拷贝当前⾏nyy //拷贝当前后开始的n⾏,⽐如2yy拷贝当前⾏及其下⼀⾏。

p //在当前光标后粘贴,如果之前使⽤了yy命令来复制⼀⾏,那么就在当前⾏的下⼀⾏粘贴。

linuxVIM指令

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行内容。

Vi编辑器中的高效率快捷键

Vi编辑器中的高效率快捷键

Vi编辑器中的高效率快捷键作为一名嵌入式Linux开发人员,vi编辑器肯定是大家平常使用最多的,也是大家在嵌入式Linux系统上使用最广泛的编辑器。

它是UNIX操作系统和类UNIX操作系统中最通用的纯文本编辑器。

这次我们来说一下那些在vi编辑器中最常用的快捷键,熟练使用vi编辑器中的快捷键,可以使你的操作飞起来...当然,这样是最为一名Linux软件开发人员应该具备的基本技能。

vi简介vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何的文本编辑器。

是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版,与vi编辑器完全兼容,而且实现了很多增强功能。

Vi也是Linux中最基本的文本编辑器,学会它后,你可以在Linux的世界里畅行无阻。

vi可以分为三种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:命令行模式(command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

底行模式(last line mode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等等有时我们将底行模式(last line mode)也算入命令行模式command mode)。

vi基本操作进入vi在系统终端中输入vi和文件名称后,就进入vi:vi myfile进入vi之后,默认是处于命令行模式(command mode),要切换到插入模式(Insert mode)才能够编辑和输入。

初次使用vi的人都会想先用上下左右键移动光标,进入vi后,先转换到插入模式(Insert mode)再进行编辑。

vim批量注释和反注释快捷键

vim批量注释和反注释快捷键

vim批量注释和反注释快捷键
vim批量注释和反注释快捷键
我是个vim新⼿,⾮常喜欢这个⼯具,因为纯⼿⼯操作吧。

可是有些快捷键还是不知道,写Python的时候经常要调试,会批量注释掉⼀些代码,vim不像pycharm那样 Ctrl+/ 就可以了,反注释还是Ctrl+/ 。

不过vim在这⽅⾯显得更强⼤更灵活点。

有两种⽅法可以实现:
第⼀种⽅法
批量插⼊字符快捷键:
Ctrl+v进⼊VISUAL BLOCK(可视块)模式,按 j (向下选取列)或者 k (向上选取列),再按Shift + i 进⼊编辑模式然后输⼊你想要插⼊的字符(任意字符),再按两次Esc就可以实现批量插⼊字符,不仅仅实现批量注释⽽已。

批量删除字符快捷键:
Ctrl+v进⼊VISUAL BLOCK(可视块)模式,按 j (向下选取列)或者 k (向上选取列),直接(不⽤进⼊编辑模式)按 x 或者 d 就可以直接删去,再按Esc退出。

第⼆种⽅法
批量插⼊字符快捷键:命令⾏模式下,输⼊ " : ⾸⾏号,尾⾏号 s /^/字符/g "实现批量插⼊字符。

如输⼊:2,7s/^/#/g,在2到7⾏⾸插⼊#
批量删除字符快捷键:命令⾏模式下,输⼊ " : ⾸⾏号,尾⾏号 s /^字符//g "实现批量删除字符。

如输⼊:2,7s/^/#/g,在2到7⾏⾸删除#。

Linuxvim删除、复制、粘贴快捷键

Linuxvim删除、复制、粘贴快捷键

Linuxvim删除、复制、粘贴快捷键删除
x ⼩写的x表⽰向后删除⼀个字符,也就是删除光标所在字符
nx n表⽰数字,表⽰向后删除每个字符,例如:10x表⽰删除包括光标在内的后⾯10个字符
X ⼤写的X表⽰删除光标前的⼀个字符,不包括光标所在字符
nX n表⽰数字,表⽰向前删除每个字符,例如:10X表⽰删除光标前的10个字符,不包括光标所在字符dd 删除光标所在的⾏,其实也是剪切
ndd n表⽰数字,删除光标所在的向下n⾏
d1G 删除光标所在⾏到第⼀⾏数据
dG 删除光标所在⾏到最后⼀⾏数据
d0 删除光标所在到该⾏第⼀个字符
d$ 删除光标所在到该⾏最后⼀个字符
复制
yy 复制光标所在的⾏
nyy n表⽰数字,复制光标所在的向下n⾏
y1G 复制光标所在⾏到第⼀⾏数据
yG 复制光标所在⾏到最后⼀⾏数据
y0 复制光标所在到该⾏第⼀个字符
y$ 复制光标所在到该⾏最后⼀个字符
粘粘
p ⼩p表⽰将已复制的数据粘贴在光标的下⼀⾏
P ⼤P表⽰将已复制的数据粘贴在光标的上⼀⾏
J 将光标所在的⾏与下⼀⾏的数据合并为⼀⾏
u ⼩u表⽰撤销上⼀步操作(特别重要,类似于windows⾥⾯的word⾥⾯的crtl+y)
ctrl+r 与u相反,表⽰重做前⼀步操作(特别重要,类似于windows⾥⾯的word⾥⾯的crtl+y)
. 点,表⽰重复前⼀个操作,例:想多次复制,⼀直按这个点就⾏了
注:以上删除、复制和粘贴均是在⾮编辑模式下的操作。

vim常用NERDTree快捷键

vim常用NERDTree快捷键

vim常⽤NERDTree快捷键ctrl + w + h 光标 focus 左侧树形⽬录ctrl + w + l 光标 focus 右侧⽂件显⽰窗⼝ctrl + w + w 光标⾃动在左右侧窗⼝切换ctrl + w + r 移动当前窗⼝的布局位置o 在已有窗⼝中打开⽂件、⽬录或书签,并跳到该窗⼝go 在已有窗⼝中打开⽂件、⽬录或书签,但不跳到该窗⼝t 在新 Tab 中打开选中⽂件/书签,并跳到新 TabT 在新 Tab 中打开选中⽂件/书签,但不跳到新 Tabi split ⼀个新窗⼝打开选中⽂件,并跳到该窗⼝gi split ⼀个新窗⼝打开选中⽂件,但不跳到该窗⼝s vsplit ⼀个新窗⼝打开选中⽂件,并跳到该窗⼝gs vsplit ⼀个新窗⼝打开选中⽂件,但不跳到该窗⼝! 执⾏当前⽂件O 递归打开选中结点下的所有⽬录x 合拢选中结点的⽗⽬录X 递归合拢选中结点下的所有⽬录e Edit the current dif双击相当于 NERDTree-o中键对⽂件相当于 NERDTree-i,对⽬录相当于 NERDTree-eD 删除当前书签P 跳到根结点p 跳到⽗结点K 跳到当前⽬录下同级的第⼀个结点J 跳到当前⽬录下同级的最后⼀个结点k 跳到当前⽬录下同级的前⼀个结点j 跳到当前⽬录下同级的后⼀个结点C 将选中⽬录或选中⽂件的⽗⽬录设为根结点u 将当前根结点的⽗⽬录设为根⽬录,并变成合拢原根结点U 将当前根结点的⽗⽬录设为根⽬录,但保持展开原根结点r 递归刷新选中⽬录R 递归刷新根结点m 显⽰⽂件系统菜单cd 将 CWD 设为选中⽬录I 切换是否显⽰隐藏⽂件f 切换是否使⽤⽂件过滤器F 切换是否显⽰⽂件B 切换是否显⽰书签q 关闭 NerdTree 窗⼝切换是否显⽰ Quick Help切换标签页:tabnew [++opt选项] [+cmd]⽂件建⽴对指定⽂件新的tab:tabc 关闭当前的 tab:tabo 关闭所有其他的 tab:tabs 查看所有打开的 tab:tabp 前⼀个 tab:tabn 后⼀个 tab标准模式下:gT 前⼀个 tabgt 后⼀个 tabMacVim 还可以借助快捷键来完成 tab 的关闭、切换cmd+w 关闭当前的 tabcmd+{ 前⼀个 tabcmd+} 后⼀个 tabNerdTree 在 .vimrc 中的常⽤配置" 在 vim 启动的时候默认开启 NERDTree(autocmd 可以缩写为 au)autocmd VimEnter * NERDTree" 按下 F2 调出/隐藏 NERDTreemap :silent! NERDTreeToggle" 将 NERDTree 的窗⼝设置在 vim 窗⼝的右侧(默认为左侧)let NERDTreeWinPos="right"" 当打开 NERDTree 窗⼝时,⾃动显⽰ Bookmarkslet NERDTreeShowBookmarks=1五、查找替换/pattern 向后搜索字符串patternpattern 向前搜索字符串pattern"" 忽略⼤⼩写"" ⼤⼩写敏感n 下⼀个匹配(如果是/搜索,则是向下的下⼀个,?搜索则是向上的下⼀个)N 上⼀个匹配(同上):%s/old/new/g 搜索整个⽂件,将所有的old替换为new:%s/old/new/gc 搜索整个⽂件,将所有的old替换为new,每次都要你确认是否替换六、退出编辑器:w 将缓冲区写⼊⽂件,即保存修改:wq 保存修改并退出:x 保存修改并退出:q 退出,如果对缓冲区进⾏过修改,则会提⽰:q! 强制退出,放弃修改键盘移动 (Move)⼀切都从键盘的移动k -> 上 upj -> 下 downh -> 左 leftl -> 右 rightz -> 重画屏幕,当前光标变成屏幕的第⼀⾏ (redraw current line at top of window) CTRL-f -> 跳到下⼀页 (page down)CTRL-b -> 跳到上⼀页 (page up)跳跃指令 (jum)跳跃指令类似于游览器中的<前进><后退>按钮CTRL-] -> 跟着link/tag转⼊ (follow link/tag)CTRL-o -> 回到上⼀次的jump (go back)CTRL-i -> 跳回下⼀个 (go forward):ju -> 显⽰所有的可以跳跃的地⽅ (print jump list)重做/回复u -> undoCTRL-r -> redovim的undo是树结构的,你可以回到这个结构中的任何地⽅:undo 2 -> undo 到结构的2层 (undo to tree 2):undolist -> 显⽰所有的undo列表 (show undo list):earlier 10s -> undo到10秒前的编辑 (undo to 10 seconds ago):earlier 10h -> undo到10⼩时前的编辑 (back to 10 hours ago):earlier 1m -> undo到1分钟前 (back to 1 minutes ago)下⾯是undo的tree结构的解释………..one…………. |……..change 1…………. |………one too………. /……..\…..change 2 ……. change 3………… | ………………… |…….one two ………. me too……….. |….. change 4………..|…… not two视觉模式 (visual)v -> 进⼊视觉模式在视觉模式内可以作block的编辑CTRL-v -> visual block打印 (print):hardcopy -> 打印vim中的内容 (print text)混合视觉模式 (visual) 可以选择打印的区域没试过是否可以直接给值打印(应该可以)例如 :1,15hardcopy 打印前15⾏将⽂件写成⽹页格式 (html):source $VIMRUNTIME/syntax/2html.vim -> change current open file to html格式 (format)dos/windows跟unix/对于⽂件的结束是不⼀样的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VIM快捷键:ctags 文件名做索引光标移动:四个方向kh 0 ljctrl+f, ctrl+b 向下翻页,向上翻页ctrl+d, ctrl+u 向下半翻页,向上半翻页$ 移动行尾0 移动行首w 移动下一个词b 移动到上一个词gg 跳到文档的开始处G 跳到文档的末尾% 跳到匹配的括号处("{ }""[]""()")ctrl+i,tab 跳到下一个jump pointctrl+o 跳到上一个jump point23gg, 23G, :23 跳到第23行ctrl+i, tab 跳到下一个跳点(Jump Point)ctrl+o 跳到上一个跳点查找替换:# 从光标向后查找整个关键词* 从光标向前查找整个关键词g# 从光标向后查找关键词g* 从光标向前查找关键词fx,tx,Fx,Tx 在当前行查找字符查找替换例子:: s/SEARCH/REPLACE: s/If/Since 将下一个"If"换成"Since": %s/If/Since 将全部"If"换成"Since": 1,3 s/If/Since/g 只对1,3行有效,如无前缀,只对当前行有效表达式:. 代替一个字符* 表示一个或多个字符的重复/d.*an 可以匹配 dan, divan, debian单词边界:指定单词边界: \< 和 \>如: /\<d[a-z]*an\> 匹配以d开始,中间包含任意个小写字母,以an结束的单词/\$[0-9]*\.[0-9][0-9] 匹配查找 $XX...X.XX这要的数字,有且只有两位小数的常用的编辑命令:a, i 在光标后插入, 在光标前插入dd 删除一行cc,S 删除一行后进入insert模式dw 删除一个单词cw 删除一个单词后进入insert模式x,dl 删除一个字符s,cl 删除一个字符后进入insert模式p 粘贴xp 交换两个字符ddp 交换两行y 复制yy 复制一行u 撤消ctrl+r 重做. 重复上一次修改ctrl+r 重做. 重复上一次修改划分窗格::split/vsplit 分隔一个窗口:new/vnew 创建一个新的窗口:sf {filename} 在新窗口中打开filename:close 关闭当前窗口:only 关闭除当前窗口外所有窗口:ctrl-w h 到左面的窗口:ctrl-w j 到下面的窗口:ctrl-w k 到上面的窗口:ctrl-w l 到右面的窗口:ctrl-w t 到顶部的窗口:ctrl-w b 到底部的窗口重复操作(宏操作):q[a-z] 开始记录操作,记录到寄存器[a-z]中q 停止记录操作@[a-z] 执行寄存器中的操作@@ 执行最近寄存器中记录的操作例子:一个缓冲区有两行:sys/types.hstdio.h-->要改为:#include <sys/types.h>#include <stdio.h>操作如下:qa #开始记录^ #移动行首i #进入insert模式#include < #输入内容$ #移动行尾i #进入insert模式> #输入内容q #停止记录移动另一行:@a即可执行相同的操作Visual Mode操作:ctrl+v 进入基于块的可视模式v 进入基于字符的可视模式V 进入基于行的可视模式c 删除选定的块I{string}<ESC> 选定块后按大写的I,输入字符串,再按ESC,可以在块内每一行插入相同的内容跳到声明处:[[ 向前跳到顶格的第一个"{"[] 向前跳到顶格的第一个"}"][ 向后跳到顶格的第一个"{"]] 向后跳到顶格的第一个"}"[{ 跳到本代码块(由{}界定)的开头[} 跳到本代码块的结尾Shell::ctrl+z/suspend 在shell下是挂起vim; gui下是最小化窗口:!{command} 执行shell命令:shell 开一个新的shell保存vim状态(挂起?)::mksession session.vim 保存当前vim状态:source session.vim 回复vim状态vim -S session.vim 启动vim时恢复session高效率移动在插入模式之外基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM 就像一个“哑巴”编辑器一样。

很多新手都会一直呆在插入模式里面,因为这样易于使用。

但VIM的强大之处在于他的命令行模式!你会发现,在你越来越了解VIM 之后,你就会花越来越少的时间使用插入模式了。

使用 h,j,k,l使用VIM高效率编辑的第一步,就是放弃使用箭头键。

使用VIM,你就不用频繁的在箭头键和字母键之间移来移去了,这会节省你很多时间。

当你在命令模式时,你可以用h,j,k,l来分别实现左,下,上,右箭头的功能。

一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。

在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。

这是因为你的段落在VIM看来是一个大的长长的行。

这时你可以在按h,j,k或者l 之前键入一个g,这样VIM就会按屏幕上面的行如你所愿的移动了。

在当前行里面有效的移动光标很多编辑器只提供了简单的命令来控制光标的移动(比如左,上,右,下,到行首/尾等)。

VIM则提供了很多强大的命令来满足你控制光标的欲望。

当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是motion。

(简单说明一下,后面会用到这个重要的概念)这里是常用到的一些命令(motion):fx:移动光标到当前行的下一个x处。

很明显,x可以是任意一个字母,而且你可以使用;来重复你的上一个f命令。

tx:和上面的命令类似,但是是移动到x的左边一个位置。

(这真的很有用)Fx:和fx类似,不过是往回找。

w:光标往前移动一个词。

b:光标往后移动一个词。

0:移动光标到当前行首。

^:移动光标到当前行的第一个字母位置。

$:移动光标到行尾。

):移动光标到下一个句子。

( :移动光标到上一个句子。

在整个文件里面有效移动光标VIM有很多命令,可以用来到达文件里面你想到达的地方。

下面是一些在文件里面移动的命令:<C-F>:向下移动一屏。

<C-B>:向上移动一屏。

G:到文件尾numG:移动光标到指定的行(num)。

(比如10G就是到第10行)gg:到文件首H:移动光标到屏幕上面M:移动光标到屏幕中间L:移动光标到屏幕下面*:读取光标处的字符串,并且移动光标到它再次出现的地方。

#:和上面的类似,但是是往反方向寻找。

/text:从当前光标处开始搜索字符串text,并且到达text出现的地方。

必须使用回车来开始这个搜索命令。

如果想重复上次的搜索的话,按n。

?text:和上面类似,但是是反方向。

ma:在当前光标的位置标记一个书签,名字为a。

书签名只能是小写字母。

你看不见书签的存在,但它确实已经在那里了。

`a:到书签a处。

注意这个不是单引号,它一般位于大部分键盘的1的左边。

`.:到你上次编辑文件的地方。

这个命令很有用,而且你不用自己去标记它。

高效的输入使用关键词自动完成VIM有一个非常漂亮的关键词自动完成系统。

这表示,你可以输入一个长词的一部分,然后按一下某个键,然后VIM就替你完成了这个长词的输入了。

举个例子:你有一个变量名为 iAmALongAndAwkwardVarName 在你写的代码的某个地方。

也许你不想每回都自己一个一个字母的去输入它。

使用关键词自动完成功能,你只需要输入开始几个字母(比如iAmAL),然后按<C-N>(按住Ctrl,再按N)或者<C-P>。

如果VIM没有给出你想要的词,基本按,直到你满意为止,VIM会一直循环它找到的匹配的字符串。

聪明的进入插入模式很多新手进入插入模式都只是用i。

这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。

下面是最常用的一些:i:在当前字符的左边插入I:在当前行首插入a:在当前字符的右边插入A:在当前行尾插入o:在当前行下面插入一个新行O:在当前行上面插入一个新行c{motion}:删除motion命令跨过的字符,并且进入插入模式。

比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。

ct!,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。

被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。

d{motion}:和上面差不多,但是不进入插入模式。

有效的移动大段的文本使用可视选择(visual selections)和合适的选择模式不想最初的VI,VIM允许你高亮(选择)一些文本,并且进行操作。

这里有三种可视选择模式:v:按字符选择。

经常使用的模式,所以亲自尝试一下它。

V:按行选择。

这在你想拷贝或者移动很多行的文本的时候特别有用。

<C-V>:按块选择。

非常强大,只在很少的编辑器中才有这样的功能。

你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。

在选择模式的时候使用上面所述的方向键和命令(motion)。

比如,vwww,会高亮光标前面的三个词。

Vjj将会高亮当前行以及下面两行。

在可视选择模式下剪切和拷贝一旦你高亮了选区,你或许想进行一些操作:d:剪贴选择的内容到剪贴板。

y:拷贝选择的内容到剪贴板。

c:剪贴选择的内容到剪贴板并且进入插入模式。

在非可视选择模式下剪切和拷贝如果你很清楚的知道你想拷贝或者剪切什么,那你根本就不需要进入可视选择模式。

这样也会节省时间:d{motion}:剪切motion命令跨过的字符到剪贴板。

比如,dw会剪切一个词而dfS会将从当前光标到下一个S之间的字符剪切至剪贴板。

y{motion}:和上面类似,不过是拷贝。

c{motion}:和d{motion}类似,不过最后进入插入模式。

dd:剪切当前行。

yy:拷贝当前行。

cc:剪切当前行并且进入插入模式。

D:剪切从光标位置到行尾到剪贴板。

Y:拷贝当前行。

C:和D类似,最后进入插入模式。

x:剪切当前字符到剪贴板。

s:和x类似,不过最后进入插入模式。

粘贴粘贴很简单,按p。

使用多重剪贴板很多编辑器都只提供了一个剪贴板。

VIM有很多。

剪贴板在VIM里面被称为寄存器(Registers)。

你可以列出当前定义的所有寄存器名和它们的内容,命令为":reg"。

相关文档
最新文档