vim基本编辑命令
1.vim存在三种基本模式:
编辑模式(命令模式),输入模式,末行模式
2.三种模式的转换方式:
编辑模式——>输入模式
i:insert,在光标所在处输入 a:append,在光标所在处后面输入 o:在当前光标所在行的下方打开一个新行 I:在当前光标所在行的行首输入 A:在当前光标所在行的行尾输入 O:在当前光标所在行的上方打开一个新行
输入模式——>编辑模式
ESC
:
末行模式——>编辑模式
ESC
3.如何关闭文件,一般在末行模式下进行
:q 退出 :q! 强制退出 :wq 保存退出 :x 保存退出 :w /PATH/TO/SOMEWHERE 保存至指定的位置 ZZ 保存退出
4.如何实现光标跳转(一般在编辑模式下进行)
字符间跳转:h,j,k,l #COMMAND :表示跳转有#指定的个数的字符 单词间跳转:e,b,w #COMMAND :有#指定一次跳转的单词数 行首行尾跳转:^,0,$ 行间移动: #G,G,gg(/G) 句间移动: ),( 段落间移动: },{
5.翻屏操作
Ctrl+f:向文件尾部翻一屏 Ctrl+d:向文件尾部翻半屏 Ctrl+b:向文件首部翻一屏 Ctrl+u:向文件首部翻半屏
vim在编辑模式下的相关指令
1.字符编辑
x:删除光标处的字符 #x:删除光标处起始的#个字符 xp:交换光标所在处的字符及其字符的位置
2.删除命令
d:删除命令,可结合光标跳转字符实现范围删除 d$ d^ d0 dW db de #COMMAND dd:删除光标所在行 #dd:多行删除
3.粘贴命令
p:缓冲区存的如果是整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面 P:缓冲区存的如果是整行,则粘贴当前光标所在行的上方否则,则粘贴至当前光标所在处的前面
4.复制命令
y:复制,工作行为相似于d命令 y$ y0 y^ ye yw yb #COMMAND yy:整行复制 #yy:复制多行
5.改变命令(c,change)
c:修改完成后将自动的由编辑模式进入末行模式 c$ c^ c0 cb cw ce #COMMAND cc:删除并输入新内容
6.撤销命令
u(undo):撤销此前的操作 #u: 撤销指定次数的操作 撤销此前的撤销 Ctrl+r 重复前一个编辑命令 .
vim在末行模式下的相关指令 (内建的命令行接口)
1.地址定界:
:start_pos,end_pos # :具体的第#行 #,#:从左侧#表示行起始,到右侧#表示行结尾 #,+#:从左侧#表示行起始,加上右侧#表示的行数 . :当前行 $ :最后一行 % :全文,相当于1,$ /parttern/,/parttern/: 从第一次被pattern1模式匹配到的行开始,一直到第一 次被pattern2匹配到的行结束 #,/pattern/: /pattern/,$ :
2.查找
/PATTERN:从当前光标所在处向文件尾部查找 ?PATTERN:从当前光标所在处向文件首部查找 n:与命令同方向 N:与命令反方向
3.查找并替换
s:在末行模式下完成查找替换操作
s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用/1,/2,···等后向引用符号。还可以使用“ &”引用前面查找时查找到的整个内容,所以用“&”不是替换了,而是添 加了内容
修饰符 :
i:忽略大小写 g :全局替换,默认情况下,每一行只替换第一次出现的模式 注:查找替换中的分隔符“/”可以替换为其他字符,例: s@@@ s###
vim多文件模式的相关操指令:
vim FILE1 FILE2 FILE3... :next 下一个 :prev 前一个 :first 第一个 :last 最后一个 :qall 退出所有 :wall 保存所有
vim窗口分割模式的相关指令:
vim -o|-O FILE1 FILE2 ... -o : 水平分割 -O : 垂直分割 在窗口间切换:Ctrl+w,Arrow
定制vim的工作特性:
1.配置文件:永久有效
全局:/etc/vimrc 个人:~/.vimrc
2.在末行模式下设定工作特性,但仅对当前vim进程有效
1).行号
显示:set number,简写为set nu 取消显示: set nonumber,简写为set nonu
2).括号匹配:
匹配:set showmatch,简写为set sm 取消:set nosm
3).自动缩进
启用:set ai 禁用:set noai
4).高亮搜索
启用:set hlsearch 禁用:set nohlsearch
5).语法高亮
启用:syntax on 禁用:syntax off
6).忽略字符的大小写
启用:set ic 禁用:set noic
7).获取帮助
:help :help subject