vim学习
认识与介绍
vim是一款linux下查看编辑文本文件的一款文本编辑器。一般用来查看修改配置文件、日志文件等文本类文件。
打开文件
vim [OPTIONS] [FILE …]
+#: 打开文件后,直接让文件处于第#行 +/PARTERN: 打开文件后,直接处于第一个被PARTERN匹配到的行的行首
模式转换
编辑模式:默认模式 编辑模式 --> 输入模式 i: insert, 在光标所在处输入 a:append, 在光标所在后方追加 o:在光标所在处的下一行打开一个新行 I:在光标所在行的行首输入 A:在光标所在行的行位输入 O:在光标所在行的上一行输入 输入模式 --> 编辑模式 ESC Ctrl+C 编辑模式 --> 末行模式 : 末行模式 --> 编辑模式 ESC Ctrl+C
关闭文件
ZZ 保存并退出 :q 退出 :q! 强制退出 :wq 保存并退出; :w, :q :x 保存并退出 :w /PATH/TO/SOMEFILE
编辑模式下的操作
光标跳转
字符键跳转 h: 左 j: 下 k: 上 l: 右 单词间跳转 w:下一个单词的词首 e:当前或后一个单词的词尾 b:当前或前一个单词的词首 行首行尾跳转 ^:跳转至行首的第一个非空白字符 0:跳转至行首 $:跳转至行尾 行间跳转 #G: 跳转至#指定的行 1G,gg: 跳转至第一行 G: 跳转至最后一行 句间跳转 ): 跳转至上一句的句首 (: 跳转至下一句的句首 段间跳转 {: 跳转至上一段落的段首 }: 跳转至下一段落的段尾
翻屏
Ctrl+f:向为文件尾翻一屏 Ctrl+b:向文件首部翻一屏 Ctrl+d:向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏 Enter:按行向后翻
字符编辑
x: 删除光标所在处的字符 #x: 删除光标 xp: 交换光标所在处的字符与其后面字符的位置;
替换命令
r:替换光标所在处的字符(键入r后,键入其他字符替换当前字符) rCHAR
删除命令
d:删除命令,可结合光标跳转字符,实现范围删除; d$:删除光标至行尾的所有字符 d^:删除光标至行首的所有字符 dw:删除光标所在单词至下一个单词的词首 de:删除光标位置到所在位置至词尾的字符 db:删除光标至当前所处单词的词首 dd:删除光标所在的行 #dd:从光标所处行起,删除#行
粘贴命令(p, put, paste)
小写p:缓存区中的内容若是正行内容,则粘贴在光标所在行的下一行;否则粘贴在光标所在行尾 大写P:缓存区中的内容若是正行内容,则粘贴在光标所在行的上一行;否则粘贴在光标所在行首
复制命令
y:复制,工作行为类似于d命令; y$: 复制光标位置到当前行尾部的内容 y^:复制光标位置到当前行行首非空的内容 y0:复制光标位置到当前行行首的内容 ye:复制光标到当前词的词尾的内容 yw:复制光标到下一个单词的词首的内容 yb:复制光标到当前单词词首的内容
改变命令(change, c)
c$:删除光标至当前行行尾的内容并进入插入模式 c^:删除光标至当前行首的非空字符并进入插入模式 c0:删除光标至当前行的行首并进入插入模式 cb:删除光标至当前单词的词首内容并进入插入模式 ce:删除光标至当前单词的词尾内容并进入插入模式 cw:删除光标至下个单词的词首的内容并进入插入模式 cc:删除光标所在的行,并转换为输入模式 #cc:从光标所在行起删除#行,并转换为输入模式
可视化模式
用来选中连续的内容。 v:按字符选定: V:按行选定; 结合编辑命令使用:d, c, y
撤销(undo)操作
u:撤销此前的操作 #u:撤下此前的#个操作 Ctrl+r:撤销此前的撤销
重复执行前一个编辑操作
.
vim 行内模式(也称为命令行模式)
-
这是vim內建的命令行接口
地址定界
界定内容后,进行命令编辑
:start_pos[,end_pos] #: 特定的第#行,例如5即第5行 .: 当前行 $: 最后一行 #,#: 指定行范围,例如3,5表示第3到第5行(其中3行和5行都包含在内) #,[-|+]#: 指定行范围,相对于起始行+#行或-#行 3,+7:表示第2行到第10行 .,$-1:表示当前行到最后一行减1行,也就是当前行到倒数第2行 1,$:表示从第1行到最后一行 %: 全文 /pattern/:从光标所在行到第一次被模式匹配到的行 /first/,$:从光标所在行起第一次匹配到first字符串的行到最后一行 /pat1/,/pat2/:从所在行起第一次匹配到pat1的行开始,至第一次匹配到pat2所在行结束之间的行。 同编辑命令一同使用,实现编辑操作: d:删除界定的内容 y:复制界定的内容 c:删除界定的内容并进入插入模式 w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中 r /PATH/FROM/SOMEFILE:将指定文件的内容读取并插入到指定位置
导入其他文件内容
r /PATH/RROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置
全文查找
/PATTERN:从光标所在处向文件尾部查找能够被 PATTERN 匹配的所有字符串 ?PATTERN:从光标所在处向文件首部查找能够被 PATTERN 匹配的所有字符串 n:跳转至下一个匹配项,与命令方向相同; N:跳转至上一个匹配项,与命令方向相反;
查找并替换
默认的界定符是 . 当前行。全文替换则为%为界定符即可。 s:末行模式的命令 使用格式: s/要查找的内容/替换的新内容/修饰符 要查找的内容:可以使用正则表达式 替换的新内容:不可以使用正则表达式,但可以引用查找到的内容中的分组 要查找的内容中有分组,在替换的新内容中可以使用 \1,\2... 向后引用 直接引用查找到的所有文本,要使用&符号; 修饰符: i:忽略大小写 g:全局替换,意味着一行中匹配到多次全替换,否则只替换匹配到的第一个 可把分隔符修改为其他不常用的字符(这种修改后,原有的/分隔符依然可以使用): s@@@ s###
定制工作特性
-
注意在末行模式下的设定,仅对当前vim进程有效;
-
永久有效,可以设置
全局:/etc/vimrc
个人:~/.vimrc1、行号 显示:set number,简写为set nu 取消:set nomber,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
获取帮助
:help :help subject
原创文章,作者:小江,如若转载,请注明出处:http://www.178linux.com/49630