文本编辑器——VI/VIM

Echo ·
更新时间:2024-09-20
· 943 次阅读

文章目录vi/vim命令模式--->输入模式输入模式--->命令模式命令模式--->末行模式末行模式--->命令模式末行模式命令模式在命令模式下以单词为单位移动逐字符移动行内跳转行间跳转句子间跳转段落间跳转翻屏可视化模式字符编辑删除复制、粘贴替换在末行模式下删除文本查找行号查找并替换

在Linux中,我们知道,一切皆文件,那么需要修改配置文本编辑器就是必不可少的,而vi/vim就是我们Linux中非常强大编辑器。vim是vi的升级版。接下来我们就一起来看看吧!

vi/vim
编辑模式 作用
命令模式 用户执行命令,例如复制行、粘贴行
输入模式 用于输入文本、修改文本等
末行模式 用于查找文本、保存修改等

输入模式无法直接回到末行模式

命令模式—>输入模式

按一下任意一个字母

i insert,在当前光标所在字符的前面,转为输入模式 I 大写的i,在当前光标所在行的行首转换为输入模式 a append,在当前光标所在字符的后面转换为输入模式 A 在当前光标所在行的行尾转换为输入模式 o open,在当前光标所在行的下方新建一行并转为输入模式 O 大写的o,不是数字0,在当前光标所在行的上方新建一行并转换为输入模式 输入模式—>命令模式 按一次ESC 命令模式—>末行模式 按一次: 末行模式—>命令模式 按两次Esc

文件打开后默认处于命令模式下

vim [文件名] 打开文件 vim +n [文件名] 打开文件并定位到第n行 vim +/pattern [文件名] 打开文件并定位到第一次被/pattern匹配到的内容行首 末行模式
命令 意义
q! 不保存退出
wq! 强行保存并退出
x 强行保存并退出
q 退出
wq 保存并退出
w 保存但不退出
w! 强制保存
命令模式 直接使用ZZ保存并退出 在之前学习的时候,并不是很常用这个方式,经常是用wq!来保存退出,但是后来发现还是这个比较方便。但也有弊端,原本在字母小写时直接Shift+Z,就是两个大写的ZZ。结果一不小心就按成了Ctrl+Z了。给终止了,结果就GG。 如果不小心终止了vi、vim。那么下次我们再打开这个文件会有错误的提示,就像是你word没有保存就关闭,下次打开会提示你要不要复原。我们的文本编辑器一样。Linux里会在你打开的目录中新建一个.文件名.swp的文件,不想在每次打开有提示,直接删除这个文件就可以了。 在命令模式下 以单词为单位移动 w 移动至下一个单词的词首 e 跳至当前或下一个单词的词尾 b 跳至当前或上一个单词的词首 逐字符移动 h 向左移动一个字符 l 向右移动一个字符 j 向下移动一个字符 k 向上移动一个字符 #h 向左移动#个字符 #l 向右移动#个字符 #j 向下移动#个字符 #k 向上移动#个字符 行内跳转 0 数字0,跳至绝对行首 ^ 跳至行首的第一个非空白字符 $ 跳至绝对行尾 行间跳转 gg 跳转至第一行 G 跳转至最后一行 #gg 跳转到第#行 #G 跳转到第#行 句子间跳转 ( 左小括号,跳转到上一个句子 ) 右小括号,跳转到下一个句子 段落间跳转 { 左大括号,跳转到上一个段落 } 右大括号,跳转到下一个段落 翻屏 ctrl+f 向下翻一屏 ctrl+b 向上翻一屏 ctrl+d 向下翻半屏 ctrl+u 向上翻半屏 可视化模式 v 按字符选取内容 V 按行(矩形块)选取内容 字符编辑 x 删除光标所在处的单个字符 #x 删除光标所在处及其向后共#个字符 xp 交换光标所在处的字符及其后面字符的位置 删除 dG=d$ 删除当前光标所在位置到行尾的内容 d^ 删除当前光标所在位置到第一个行首非空白字符位置的内容 dgg=d0 删除当前光标所在位置到绝对行首的内容 #d跳转符删除跳转符范围内的#个,例如: dw 删除一个单词 dd 删除当前光标所在行整行 #dd 删除包括当前光标所在行在内的#行 D 删除当前光标所在行的内容,保留空行

命令模式下d命令常与跳转命令组合使用

复制、粘贴 yy 复制 p 粘贴 小写p 在光标后面或者上一行粘贴 删除或复制的为整行内容,则粘贴至光标所在行的下方 删除或复制的为非整行,则粘贴至光标所在字符的后面 大写P 在光标前面或者下一行粘贴 删除或复制的为整行内容,则粘贴至光标所在行的上方 删除或复制的为非整行,则粘贴至光标所在字符的前面 替换 R 替换模式,替换多个字符 r# 将当前光标的字符替换为#,这里的#可以是任何字符

##撤销编辑

u 撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作 ctrl+r 还原最近一次的撤销操作 . 重复前一次编辑操作 在末行模式下 删除

1,5d 删除第1到第5行

范围表示

表示方法 意义
. 光标所在行
$ 最后一行
+# 光标所在往后的#行
$-# 倒是第#+1行
% 表示全文
文本查找 /word 从上往下查找匹配的内容 ?word 从下往上查找匹配的内容 n 从上往下查找匹配到的内容的下一条 N 从下往上查找匹配到的内容的下一条 行号 set nu 显示行号 set nonu 取消显示行号 查找并替换 #,# s/word1/word2/g

例:

:1,5 s/wj/jay/g //把第一行到第五行中的wj替换为jay 以上内容均属学习时整理,如有不详或错误,敬请指出。 本文作者: 坏坏 本文链接: https://blog.csdn.net/qq_45668124/article/details/104505251 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
作者:坏坏-5



vi 文本编辑器 文本编辑 vim 编辑器

需要 登录 后方可回复, 如果你还没有账号请 注册新账号