vim编辑器
vim,可谓文本编辑界的大哥,功能强大无比,是进阶版的vi, vim 不但可以用不同颜色显示文字内容,还能够进行诸如 shell script, C program等程序编辑功能。
vim是一种模式化的编辑器 (vim自带教程,命令行中输入vimtutor即可)
vim基本模式:
命令模式(默认模式)
功能:移动光标,复制、输入命令来完成等操作
输入命令时没有可视信息,直到命令输入完成后系统自动执行
输入模式(编辑模式)
功能:修改文本内容
扩展命令模式(内置命令行接口)
功能:查找替换、保存退出等
打开文件:
#vim [options] [file…]
+#:打开文件后光标自动跳转到指定的行数 [root@CentOS 7 test]# vim +10 passwd//进入文件光标自动在文件的第10行 +/PATTERN:打开文件后,光标直接处于第一个被PATTERN匹配到的行的行 [root@CentOS 7 test]# vim +/^ftp passwd //打开文件光标在第一次匹配到以ftp开头的行的行首
关闭文件:(扩展命令模式下)
命令(默认)模式下:
按shift+zz即可保存并退出,shift+zq即退出不保存。
扩展命令模式下:
q:退出不保存(未更改文件内容前) q!:强制退出不保存(用于已修改文件后) wq:保存并退出 x:保存并退出 //以上4个直接在扩展命令模式中的冒号输入确认即可
w /path/to/somefile:将文件另存为到指定文件 编辑文件,在扩展命令模式下输入保存地址即可,保存后可看到提示信息 :w /test/passwd2 //保存的地址 "/test/passwd2" [New] 39L, 2026C written //提示信息(新文件“/test/passwd2”写入39行,2026个字节) r /path/form/some: 读取指定文件内容到当前编辑文件 需要在正在编辑的文件中添加其他文件的内容,可在扩展命令模式下,输入下面的命令即可导入 :r /etc/issue //在扩展命令行模式下导入/etc/issue文件内容到当前正在编辑的文件中
模式转换:在进行模式转换时的光标位置命令
命令模式——输入模式
i: insert 在光标所在处输入 I:在当前光标所在行的行首输入 a: append, 在光标所在处后面输入 A:在当前光标所在行的行尾输入 o 在当前光标所在行的下方打开一个新行 O:在当前光标所在行的上方打开一个新行
光标跳转:(命令(默认)模式下进行)
字符间跳转:(在命令模式(默认)下直接输入即可左右上下移动)
左(h)、右(l)、前(j)、后(k)
#(h/l/j/k):跳转#个指定方向的字符 #10h //向左移动10个字符(直接在默认模式下输入即可,没有可视的信息,命令输入完之后会自动执行)
单词间跳转: (命令(默认)模式下进行)
w:下一个单词的词首 e:当前或下一单词的词尾 b:当前或前一个单词的词首 # command:由#指定一次跳转的单词数 #(w/e/b): 指定跳转单词数 #5w //跳转到5个单词的最后一个单词词首
行首行尾跳转:(命令(默认)模式下进行)
^:跳转至行首的第一个非空字符 0:跳转至行首,不识别空格直接到第一个字符 $:跳转至行尾
行间跳转:(命令(默认)模式下进行)
#G:跳转至由#指定的行 #10G //跳转到第10行 1G/gg:跳转至第一行
Vim编辑命令:(命令(默认)模式下进行)
字符编辑:(命令(默认)模式下进行)
x:删除光标所在处的字符 #x:删除光标处起始指定的#个字符 xp:光标当前所在位置的字符与后面的字符转换位置(两个字符互换)
替换命令:(命令(默认)模式下进行)
r:替换光标处的字符
删除命令:(命令(默认)模式下进行)
d:删除命令,可结合光标跳转来实现删除 d $:删除光标处向后的所有字符(行 d^:删除光标处向前的所有字符(行) dw:删除向后指定的多少个单词 如:d3w //删除3个单词 de:删除向后的单词 db:删除向前的单词 dd:删除当前的一整行 //3dd,删除3行
复制命令:(命令(默认)模式下进行)
y:复制(复制,工作行为相当于d命令) y$,y^,yo,ye,yw,yb,#command yy:复制一整行
粘贴命令:(命令(默认)模式下进行)
p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方,否则,则粘贴在当前光标所在处的后面 P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方,否则,则粘贴在当前光标所在处的前面
可视化操作:(命令(默认)模式下进行)
v:按字符选定 V:按行选定
撤销操作:(命令(默认)模式下进行)
u:撤销此前的操作 #u:撤销#次操作 #4u:撤销4次 ctrl+r:撤销此前的撤销操作 . :重复执行前一个编辑命令
扩展命令模式:
1.地址定界:
:start_pos,end_pos #: 具体第#行,例如2表示第2行; #,#: 从左侧#表示行起始,到右侧#表示行结尾 #,+#: 从左侧#表示的行起始,加上右侧#表示的行数 : 2,+3 表示2到5行 .: 当前行 $: 最后一行 .,$-1 当前行到倒数第二行 %:全文, 相当于1,$ /pat1/,/pat2/ 从第一次被pat1模式匹配到的行开始,一直到第一次被 pat2匹配到的行结束 #,/pat/ /pat/,$ w file: 将范围内的行另存至指定文件中 r file:在指定位置插入指定文件中的所有内容
查找
/PATTERN:从当前光标所在处向文件尾部查找 ?PATTERN:从当前光标所在处向文件首部查找 n:与命令同方向 N:与命令反方向
查找替换
s: 在扩展模式下完成查找替换操作 格式: s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用\1, \2, ... 等后向引用符号;还可以使用“ &引用前面查找时查找到的整个内容 修饰符: i: 忽略大小写 g: 全局替换;默认情况下,每一行只替换第一次出现 gc:全局替换,每次替换前询问 查找替换中的分隔符/可替换为其它字符,例如 s@/etc@/var@g s#/boot#/#i
vim的寄存器:
有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。
用a, b,&,z表示,用寄存器表示,放在数字和命令之间如: 3"tyy 表示复制3行到t寄存器中"tp 表示将t寄存器内容粘贴未指定,将使用无命名寄存器
有10个数字寄存器,用0, 1, &, 9表示, 0存放最近复制内容, 1存放最近删除内容。当新的文本变更和删除时, 1转存到2, 2转存到3,以此类推。数字寄存器不能在不同会话间共享。
可视化模式:
允许选择的文本块 v 面向字符 V 面向行 ctrl-v 面向块 可视化键可用于与移动键结合使用: w, ) , } ,箭头等 突出显示的文字可以被删除,复制,变更,过滤,搜索/替换
多文件模式:
vim FILE1 FILE2 FILE3 …
:next 下一个 :prev 前一个 :first 第一个 :last 最后一个 :wall 保存所有 :qall 退出所有 :wqall
使用多个窗口
多文件分割
vim -o|-O FILE1 FILE2 ... -o: 水平分割 -O: 垂直分割 在窗口间切换: Ctrl+w, Arrow
单文件窗口分割:
Ctrl+w,s: split, 水平分割 Ctrl+w,v: vertical, 垂直分割 ctrl+w,q:取消相邻窗口 ctrl+w,o:取消全部窗口 : wqall 退出
定制vim工作特性
配置文件:永久有效
全局: /etc/vimrc 个人: ~/.vimrc
扩展模式下输入:当前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) 文件格式 启用: fileformat=unix 不忽略: fileformat=dos (8) 设置文本宽度 :set textwidth=65 (vim only) :set wrapmargin=15 :help option-list :set or :set all
原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/32086
评论列表(1条)
给个赞