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编辑器常⽤命令vi有3个模式:插⼊模式、命令模式、低⾏模式。

插⼊模式:在此模式下可以输⼊字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低⾏模式:可以保存⽂件、退出vi、设置vi、查找等功能(低⾏模式也可以看作是命令模式⾥的)。

⼀、打开⽂件、保存、关闭⽂件(vi命令模式下使⽤)vi filename //打开filename⽂件:w //保存⽂件:w //保存⾄⽂件:q //退出编辑器,如果⽂件已修改请使⽤下⾯的命令:q! //退出编辑器,且不保存:wq //退出编辑器,且保存⽂件⼆、插⼊⽂本或⾏(vi命令模式下使⽤,执⾏下⾯命令后将进⼊插⼊模式,按ESC键可退出插⼊模式)a //在当前光标位置的右边添加⽂本i //在当前光标位置的左边添加⽂本A //在当前⾏的末尾位置添加⽂本I //在当前⾏的开始处添加⽂本(⾮空字符的⾏⾸)O //在当前⾏的上⾯新建⼀⾏o //在当前⾏的下⾯新建⼀⾏R //替换(覆盖)当前光标位置及后⾯的若⼲⽂本J //合并光标所在⾏及下⼀⾏为⼀⾏(依然在命令模式)三、移动光标(vi命令模式下使⽤)1、使⽤上下左右⽅向键2、命令模式下:h 向左、j 向下、k 向上、l 向右。

空格键向右、Backspace 向左、Enter 移动到下⼀⾏⾸、- 移动到上⼀⾏⾸。

四、删除、恢复字符或⾏(vi命令模式下使⽤)x //删除当前字符nx //删除从光标开始的n个字符dd //删除当前⾏ndd //向下删除当前⾏在内的n⾏u //撤销上⼀步操作U //撤销对当前⾏的所有操作五、搜索(vi命令模式下使⽤)/vpser //向光标下搜索vpser字符串vpser //向光标上搜索vpser字符串n //向下搜索前⼀个搜素动作N //向上搜索前⼀个搜索动作六、跳⾄指定⾏(vi命令模式下使⽤)n+ //向下跳n⾏n- //向上跳n⾏nG //跳到⾏号为n的⾏G //跳⾄⽂件的底部七、设置⾏号(vi命令模式下使⽤):set nu //显⽰⾏号:set nonu //取消显⽰⾏号⼋、复制、粘贴(vi命令模式下使⽤)yy //将当前⾏复制到缓存区,也可以⽤ "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

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编辑器的时候,有时候编辑⼀个⽂件,⽽⽂件内容⽐较多,如果需要快速清空整个⽂件,可以使⽤⼀下命令:
在命令模式下,⾸先执⾏
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。

vi编辑器常用的命令及快捷键

vi编辑器常用的命令及快捷键
Ftext 在当前行向后查找text
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 将临时缓冲区中的文本放入光标后

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”。

vim快捷键

vim快捷键

替换当前字符,直到按下“ESC”键为止 从当前字字首到#个字字尾(包括当前字)(当#=1,可省略) 在当前行,从当前光标处到当前行的行未(包括当前字符)插入 在当前行,先清除当前行,再从当前光标处到当前行的行未(包括当前字符)插入 在当前字,从当前字当前光标到当前字/n个字的字尾,复制到无名缓冲区(包含当前字符、当前字)(当#=1,可省略) 把#1~#2行复制到#3行的下一行 将当前行,放入无名缓冲区 将当前行,放入缓冲区& 将从当前行的#行,放入无名缓冲区(当#=1,可省略) 删除当前光标前的n个字符(不包括当前字符)(当#=1,可省略) 删除当前光标前的n个字符(包括当前字符)(当#=1,可省略) 删除光标后的一个字符,并进入插入模式 删除从当前光标到当前光标所在单词末尾(不包括空格) 删除从当前光标到当前光标所在单词末尾(不包括空格) 从当前光标到行末(不包括当前光标) 删除当前行,将当前行的内容放入缓冲区& 删除指定行之间的内容(包括边界两行) 删除从当前行开始的#行(包括当前行)(当#=1,可省略) 删除光标所在的行,并进入插入模式 把#1~#2的内容移动到#3行号的下一行 从无名缓冲区,粘贴到光标所在行的光标后位置;粘贴到当前行的当前光标前的位置 从无名缓冲区,粘贴到光标所在行的下一行;粘贴到当前行的当前光标后的位置 从缓冲区&,粘贴到光标所在行的上一行;粘贴到当前行的当前光标前的位置 从缓冲区&,粘贴到光标所在行的下一行;粘贴到当前行的当前光标后的位置 用来撤销最后执行的命令 修正整行,恢复对该行的原始状态 撤销掉以前的撤销命令,恢复以前的操作;重做上一个操作 将光标所在行与下一列的数据结合成同一行(删除回行符(合并两行), 合行后中间加一个空格) 将光标所在行与下一列的数据结合成同一行(删除回行符(合并两行) ,合行后中间不加一个空格) 交换当前字符与右一个字符位置(此命令是x删除命令与p粘贴命令的组合) 交换上下行位置(此命令是dd删除命令与p粘贴命令的组合) 查看搜索历史 查看命令使用历史 显示行号 显示当前文件信息 (【文件名 是否修改 当前第一行 前面所占行的百分比】) 查看所有帮助 查看关于command的帮助 执行命令

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。

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命令来复制⼀⾏,那么就在当前⾏的下⼀⾏粘贴。

vim基本用法

vim基本用法

vim基本用法Vim基本用法Vim是一款强大的文本编辑器,它可以在Linux、Unix、Mac OS X等多种操作系统中使用。

它的灵活性和高效性使得它成为程序员和系统管理员的首选工具。

在本文中,我们将介绍Vim的基本用法。

一、命令模式当你打开Vim时,你将进入命令模式。

在这个模式下,你可以使用各种命令来编辑文本。

以下是一些常用的命令:1.移动光标h:向左移动一个字符j:向下移动一行k:向上移动一行l:向右移动一个字符2.删除文本x:删除光标所在位置的字符dd:删除整行文本3.复制和粘贴文本yy:复制整行文本p:粘贴复制的文本4.撤销和恢复u:撤销上一步操作Ctrl + r:恢复上一步操作二、插入模式在命令模式下,你可以使用i、a、o等命令进入插入模式,以便输入文本。

以下是一些常用的命令:1.插入文本i:在光标所在位置插入文本a:在光标所在位置的下一个字符插入文本o:在光标所在位置的下一行插入文本2.退出插入模式Esc:退出插入模式三、可视模式在命令模式下,你可以使用v、V、Ctrl + v等命令进入可视模式,以便选择文本。

以下是一些常用的命令:1.选择文本v:选择字符V:选择整行Ctrl + v:选择矩形区域2.复制和删除文本y:复制所选文本d:删除所选文本四、末行模式在命令模式下,你可以使用:命令进入末行模式,以便执行一些高级操作。

以下是一些常用的命令:1.保存文件:w:保存当前文件2.退出Vim:q:退出Vim:q!:强制退出Vim3.保存并退出Vim:wq:保存当前文件并退出Vim以上是Vim的基本用法,你可以通过阅读Vim的帮助文档来了解更多高级用法。

使用Vim需要一定的学习成本,但一旦掌握了它,你将获得无与伦比的编辑体验。

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

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常用快捷键1、vim ~/.vimrc 进入配置文件如果不知道vimrc文件在哪,可使用 :scriptnames 来查看set nu #行号set tabstop=4 #一个tab为4个空格长度set ai #设置自动缩进syntax on #高亮2、基本空格键向右移动一格x 删除后面的字符 X 删除前一个字符删除3个字符就是3x dd:删除一行 D 删除到行尾caw:改写单词 c 相当于 d 变为编辑模式J:删除换行符,使下一行并上来。

nJ:连接后面的n行u:撤销上一次操作 U:撤销当前行的所有修改ctrl+r:对撤消的撤消i 在光标前插入I 在行首插入a 在光标后插入A 在行末插入o:在当前行的下面另起一行,并变为插入模式O:在当前行上面另起一行,变为插入模式Ctrl+o:临时变成命令模式(一次而已):e!:放弃更改,然后相当于重新打开:help:帮助,可用ZZ退出帮助窗口vim中Nyy可以复制光标后的N行。

有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围:1. 在开始行上输入ma作一个标记a2. 移动到结束行,输入y'a会复制当前行到标记a之间的文本。

d'a会删除。

或者是v进入可视模式,再13G跳转到相应行,y即可。

:10,20y 回车即可,相应的删除也是如此 :10,20d (此方法比上面两种方法更简单):10,20 m 30 把10行到20行的内容,剪切到30行之后:10,20 co 30 把10行到20行的内容,复制到30行之后将光标放在 { 处,然后输入v%就可以把大括号中内容选定如果光标放在第一个s上,想删除到“(”为止,则输入dt(就可以了,t(的作用是跳到下一个"("前。

ctrl +n 自动补全 ctrl + p 也一样:ab hw hello world 用一个缩写字符串代替一个长的字符串,此处用 hw 代替 hello world%: 移动到与制匹配的括号上去(),{},[],<>等' 移动到上一次的修改行fx 向右跳到本行字符x处(x可以是任何字符)Fx 向左跳到本行字符x处(x可以是任何字符)tx 和fx相同,区别是跳到字符x前Tx 和Fx相同,区别是跳到字符x后# 到与当前单词相同的上一个单词上, * 到与当前单词相同的下一个单词上如果你要重复键入一个短语或一个句子, 也有一种快捷的方法。

Vim有一种记录宏的机制。

你键入"qa"开始把一段宏记录入寄存器变量`a'中。

按下来你可以象平常一样键入你要的操作, 只是这些操作都会被Vim记录进它命名为`a'的宏中, 再次再下"q"键, 就结束了宏`a'的录制。

当你要重复执行你刚才记录的那些操作时只要使用"@a"命令。

共有26个可用的寄存器供你记录宏。

使用宏你可以重复多个不同的操作。

而不仅仅是插入文本了。

如果你要进行某种重复的操作, 记着要用这一招呀。

:abbr hte the:abbr hw Hello World输入先面的单词时,自动用后面的替换。

3、移动:b、3b、w、3w:向前\后移动几个单词,标点也算一个单词。

相应的大写状态为不含标点,即只把空格和换行符作为单词间隔符。

$:移动到行尾 3$:移动到3行后的行尾^:移动到行首,0也是+:移到下一行的行首-:移到上一行的行首f:搜索命令,小写时向后搜索(用来定位)如 fx:定位到下一个x上。

Fx:定位到上一个x上,重复时,可用;或, 不过 , 表示反方向%:跳到相对应的括号上,编程时常用33G:跳转到33行此时按``可以返回到原来行gg:文件头 G:文件尾30%:跳转到文件的30%处"H"意为Home, "M"为Middle, "L"为Last. 当前屏幕的上中下位置,大小写皆可Ctrl+G:显示当前位置set number:设置显示行号,set nonumber:关闭显示:set ruler 设置在窗口右下角显示行号,与上面的好处是,节省空间ctrl+u\d 向上\下滚动半屏ctrl+e\y 向上\下滚动一行ctrl+b\f 向上\下滚动一屏这个比较实用,记住。

zz:将当前行滚动于屏幕中间,方便查看上下文 zt置顶,zb置尾/string 查找string,回车后,按n键可以跳到下一个,N上一个,另外按/键后,按上下键可以找到以前查找的记录,同样的:也有记录?/string 同上,默认向上查找:set ignorecase 大小写无关:set noignorecase 大小写敏感* :查找下一个光标所在单词 #是查找上一个:set hlsearch 高亮显示查找结果:set nohlsearch 取消高亮:nohlsearch 去掉当前显示的高完(一次性)`` 上次光标停靠的行% 匹配到相应括号处>> 向右移动本行一段距离 << 向左移动本行一段距离 3<< 把下面3行(包括本行),向左移动一段距离 :20,30>> 把20行到30行向右移动一段距离4、小幅改动::%s/str1/str2/g 替换每一行的 str1为 str2:10,20s/str1/str2/g 替换从行10到行20之间的 str1为 str2:10,$s/str1/str2/g 替换从行10到最后一行之间的 str1为 str2:s/str1/str2/g 替换当前行的 str1为 str2. 重复执行命令:10,$ w test2.cpp 取行10到最后一行内容,保存到test2.cpp:r class/User.hpp 读取文件中的内容,插入到当前行的后面dw:删除一个单词(光标后部分)不如:daw实用d4w:删除4个单词d$:删除当前光标到行尾d^:删除当前光标至行首d换成c效果是一样的,只是操作完会变成insert模式 dnw:删除N个单词 dnj: 向下删除n行 dnk: 向上删除n行X:删除左边的字符,相当于<-键,x删除当前字符D:相当于d$ C:相当于c$ s:相当于c1 S:相当于ccr:替换当前字符,但不会进入insert模式3r:把后面3个字符替换掉R:替换模式.:重复上一次操作v:进入Visual模式V:进入可视行模式,比如 Vjjd 删除3行Ctrl+v:可视块模式P:粘贴至光标前p:粘贴至光标后3P:粘贴3次 "2p 粘贴最后第二次的删除的内容yy:复制一行yaw:复制一个单词,光标在单词任意位置 ynw:复制N个单词ynj: 向下复制n行 ynk: 向上复制n行自动缩进::set cindent(所有的set都可以简写为se,虽然只节省了一个字符, 译者注) 需要注意的是cindent控制缩进量是通过shiftwidth选项的值, 而不是通过tabstop 的值, shiftwidth的默认值是8(也就是说, 一个缩进为8个空格, 译者注), 要改变默认的设置, 可以使用":set shiftwidth=x"命令, 其中x是你希望一个缩进量代表的空格的数目.{ = 到前一个空行上} = 到下一个空行上5、VIM的一些插件:c.vim :如果是用root账号的,把文件复制到/usr/share/vim/vim70中解压没有用的,不存在 $HOME/.vim 这个目录,没办法,只能新建个目录,然后把压缩包cp到这个目录,再unzip即可。

在 ~/.vimrc 中写入 filetype plugin on:e! 返回上次保存后的状态Ctrl+z:暂停vi,回到Unix提示符,再输入fg即可回到vi。

^回到行首,光标位于行首字母处;0回到行首,光标位于行首字母前。

$回到行尾,光标位于行尾字母处。

nb:向前移动n个单词,nw:向后移动n个单词。

光标位于单词的第一个字母处。

nw这个操作很慢,不知何故。

以空格、标点符号与单词的分界为分隔符。

(几个连续的标点视为一个单词)同样的,也可以使用nB,nW,只是这里只使用空格做为分隔符。

相换两个相邻字母的位置:x、ps:删除一个字符,并进入编辑模式。

S:删除一整行,进入编辑模式,相当于cc。

ns:删除后面n个字符,并进入编辑模式。

~:更改字母的大小写,同时光标进入到下一个字符。

n~:把后面n个字母的大小写状态改变。

dw:删除单词后面部分 db:删除单词前面部分。

如果要删除整个单词(光标位于单词中间的话),可以 dbw\wdbde:类似于dw,删除单词后面的部分(只删除到本单词结尾,dw会删除掉单词后面的空格)dE:删除的范围包括标号在内的单词结尾。

e:相当于w,向后移动一个单词。

不同的是,w移动到单词第一个字符上,e移动到单词最后一个字符上。

所以ea,可以给本单词追加内容。

D:d$ 的简写,同样的,C:c$的简写。

U:会恢复一整行原先的面貌,即最原始的样子。

Y:相当于yy,不同于D与C的操作方法。

.:重复上一个命令。

除了O/o,插入命令(A,a,I,i)接受数值参数,如:5Ihello,然后按ESE键。

会在行首输入5个连接的hellonr:替换后面n个字符。

nJ:合并下面的n行(从本行算起)。

ynl:向后复制n个字符。

e/E:到单词的结尾。

滚动整屏:^f:向前(下)一整屏^b:向后(上)一整屏^d:向前(下)一半屏^u:向后(上)一半屏z,Enter:将光标所在行移动到屏幕顶部(同于zz)z.:将光标所在行移动到屏幕中间z-:将光标所在行移动到屏幕尾部nz,Enter:将第n行移动到屏幕顶部,同样的,z. 与 z- 前也可以加数字。

在屏幕中移动:H、M、L分别移动到屏幕的顶部、中间和尾部。

nH、nL 移动到距离屏幕顶部和顶部n行的位置。

Enter:到下一行的第一个字符。

+:到下一行的第一个字符。

-:到上一行的第一个字符。

n|:移动到当前行的第n列e:移到单词的结尾E:移到单词的结尾(忽略标点符号)( ) { } [[ ]] 这几个对编程作用不大,可忽略。

d/it:向后删除到it之前的位置(不删it)。

d?it:向前删除到it之前的位置(删除it)。

fx:本行中向右搜索x,光标置于x上。

Fx:向左搜索。

; 重复上一个搜索命令,方向相同。

,重复上一个搜索命令,方向相反。

tx:同fx,只是光标置于x之前。

Tx类似。

dfi:向右删除第一个i的位置(包括i) dti:同dfi,只是不包括iCtrl+G 查看当前行信息nG跳转后,可使用``回到上一次的位置,''功能一样,不过只是回到前次位置所在行的开头,而不是确定的位置上。

相关文档
最新文档