11-Linux基础-vim编辑器 本文共有4337个字,关键词: vim编辑器 vi (visual insterface):vi是一个文本编辑器 文本:ASCII码,美国国家信息标准交换代码 unicode 国际通用的编码方式,utf8为unicode中的一种编码方式 •但凡是纯文本编辑时,都可以使用vim进行编辑 •种类 行编辑器:sed 全屏编辑器:nano,vi •vim是vi的增强版,vi在嵌入式中应用较多 •vim是一个模式化的编辑器 命令模式 插入模式 末行模式(vim内置的命令接口) •当我们使用vi/vim编辑文档时,会有一个临时文档(隐藏文件)在目录中生成,目的是防止系统或程序意外崩溃,保存编辑的信息,并不会写入源文件 出现打开文件报错的时候,我们可以选择删除.*.swap临时文件再编辑文档。 文档编辑时的不征程退出也可能到导致临时文件的存留,当再次打开文件时会报错,删除即可。 ~]#vim #欢迎信息与文件内容无关 ~]#vim [opyion] file1 file2 file3.... +NUM 打开文件时让光标处于指定行的行首 +/PATTERN 打开文件后定位到被模式第一次匹配行行首 + 打开文件后,直接出现在行尾 •vim模式间的转换 命令模式-->插入模式 i 在当前光标前插入 I 在当前光标所在行行首插入 a 在当前光标后插入 A 在当前光标所在行行尾追加 o 在当前光标所在行的下新建一行 O 在当前光标所在行的上方新建一行 插入模式-->命令模式 Esc键 命令模式-->末行模式 输入冒号":" 进入末行模式后需输入相应的命令 •末行模式下文件的操作 ``` :q 退出 :q! 强制退出,丢弃做出的决定 :wq 保存并退出 :x 保存并退出 :w 保存文件至当前文件 :w /PATH/TO/SOMEWHERE 将文档所有内容保存到指定位置 ZZ 保存退出 •光标跳转 字符间跳转:H(左) J(下) K(上) L(右) 支持#COMMAND #指定跳转的字符 •单词间跳转 w 下一个单词的词首 b 当前或上一个单词的词首 e 当前或下一个单词的词尾 #COMMAND #支持跳转指定单词数 •行首行尾跳转 ^ 跳转至行首第一个非空白字符 0 跳转至绝对行首 $ 跳转至绝对行尾 •行间移动 #G 跳转至指定行 G 跳转至最后一行 gg/1G 跳转至行首 •句间移动 ) 下一句 ( 上一句 •段落间移动 } 下一段 { 上一段 vim编辑命令(命令模式) •字符编辑 x 删除光标处的字符 #x 删除光标处开始的指定个字符 xp 删除当前字符,粘贴在当前字符(当前字符已改变)的后面,交换光标所在处及其后面字符的位置。 •删除命令(删除的内容是保存在缓冲区内的,因此可以撤销,但是只能粘贴最近一次删除的内容) d 需要结合光标跳转字符使用,即删除命令执行后光标移动的距离 d$ 删除光标至行尾的内容, d0 删除光标处至行首的内容 d^ 删除光标到行首的第一个非空白字符 d#w/dw '#'为删除的单词数,即光标掠过的单词,删除光标后n个单词,当前单词不计算在内 d#b/db 删除光标前指定的单词数 d#e/de 删除光标后的指定单词数,当前单词计算在内 dd 删除光标所在行 D 删除光标所在行的所有字符(仅删除行中的字符) •粘贴命令 粘贴的方式取决于当前缓冲区内为整行还是非整行 p(小) put、paste 整行:粘贴至当前光标所在行行下 非整行:粘贴至当前光标所在字符后 P(大) 整行:粘贴至当前光标所在行上 非整行:粘贴至当前光标所在字符前 •复制命令 y$ 从当前光标处复制到行尾 y^ 从当前光标处复制到行首的第一个非空白字符 y0 从当前光标处复制到绝对行首 yy 复制一整行 #yy 复制从当前行开始的向下指定行数 •改变命令:c(change) c 删除光标所在处内容并进入插入模式,配合字符跳转字符使用 c$ 删除光标处至行尾的内容并进入插入模式 c^ 删除光标处至行尾的第一个非空白字符,并进入插入模式 c0 删除光标处至绝对行首,并进入插入模式 cc 删除整行并进入插入模式 #cc 删除指定的多行并进入插入模式 •替换:r r 替换光标处的字符 R 进入替换模式 •撤销此前的操作(在没有使用w保存的时候) u (undo)撤销此前的操作,保存在内存的缓冲区,默认保存50次操作 •反撤销(恢复此前的撤销) Ctrl+r "." 重复上一次的操作 •翻屏操作: ctrl+f 向文件尾部翻一屏 ctrl+b 向文件首部翻一屏 ctrl+d 向文件尾部翻半屏 ctrl+u 向文件首部翻半屏 •查找 /pattern 从光标处向下查找指定的字符串,可使用正则,也可使用字符串 ?pattern 查找字符串,可以使用正则,也可使用字符串,从光标处向上 n:与命令查找方向一致 N:与命令查找方向相反 末行模式(末行模式下也有命令历史的功能) 末行模式为内建的命令行接口 •地址定界 :开始行,结束行 :1,100 从第一行到100行 :# 定位到指定行 :M,+N 从第M行开始的+N行 :. 当前行 :$ 最后一行 :$-1 倒数第二行 :% 表示全文 :/pattern1/,/pattern2/ 从第一次被模式1匹配的行开始至第一次被模式2匹配的行结束之间的行,但是很少这么用 :#,/pattern/ 从指定行开始,至第一次被模式匹配的行结束 :/pattern/,$ 从第一次被匹配到的行开始,到文档最后一行 •地址定界常常和编辑命令等一起使用 :m,nd 删除指定的行 :m,ny 复制指定的行 :w /path/to/somewhere 将修改后的文档保存到指定位置 :r /path/to/somefile 将指定文件读取到当前光标处 •查找并替换(末行模式下,同地址定界一同使用) :%s/要查找的内容/要替换的内容/修饰符 #可以使用正则匹配 替换的内容可以使用\1,\2...后项引用 "&" 引用前面查找到的整个内容 :.,$s/R..t/&er/g 将R..t替换为R..ter •修饰符: g 全局(整行,只要匹配就替换)替换,不写则默认替换每一行第一次匹配 分隔符可使用@或者#代替,避免出现相同字符需要转义 :%s/^[[:space:]]\+/#&/g 以空白字符开头的行首加入"#"(注释) ``` •多文件文件操作: ``` ~]#vim /tmp/{a,b,c,d} 同时操作多个文件。但是不会出现在同一屏幕 :next 下一个文件 :last 最后一个 :prev 上一个文件(previous) :first 附一个文件 :wall 保存所有打开的文档 :qall 退出所有 :wqall 保存并退出所有文档 •窗口分割模式(未打开的多文件) ~]#vim -o|O file1 fil2 fil3..... -o 水平分割 Ctrl+w ←、→切换文档 -O 垂直分割 Ctrl+w ↑、↓切换文档 #窗口切换:Ctrl+w,arrow(箭头) •单文件窗口切割(已打开的单个文件) Ctrl+w, s(split) 水平分割单文件 Ctrl+w, v(vertical) 垂直分割单文件 ``` 定制vim工作特性 ``` 全局:/etc/vimrc 个人:~/.vimrc •显示行号 :set number 开启行号显示 :set nonumber 关闭行号显示 •括号匹配 :set showmatch 开启括号匹配 :set noshowmatch 关闭括号匹配 •自动缩进 :set ai 开启自动缩进 :set noai 关闭自动缩进 •高亮搜索 :set hlsearch 开启高亮搜索 :set nohlsearch 关闭高亮搜索 •语法高亮 :syntax on 开启语法高亮 :syntax off 关闭语法高亮 •忽略大小写(不建议启用,linux本身就严格区分大小写) :set ic 启用忽略大小写 :set noic 禁用忽略大小写 •配置文件中,以"#[[:space:]]"开头的一般为注释(chkconfig行就是例外) •配置文件中,以"#"开头的一般都可以删除"#"启用该行 ``` vim编辑器回顾: 编辑模式 输入模式 末行模式 可视化模式 跳转:h、j、k、l、w、e、b、)、(、{、}、G、^、0、$ 编辑:x、r、c、d、y、p、u、Ctrl+r 查找:/、?、n、N 查找替换s:常配合定界符使用s/OLD/NEW/g g 全局替换 i 查找时忽略大小写 •末行模式定界 # 定位到指定行 m,n m行开始,n行结束 m,+n m行以及m行下一行开始的n行 . 当前行 $ 最后一行,$-1倒数第二行 #,/PATTERN/ 从第#行开始,到第一次匹配到结束 /PATTERN/,$ 第一次被模式匹配的行至行末 % 全文查找 •文件测试(双目测试) 文件1 -nt 文件2 文件1是否新于文件2 文件1 -ot 文件2 文件1是否旧于文件2 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 基础笔记综合整理 2018-10-07 评论 1792 次浏览