vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
本文主要是简单的介绍 vim
的使用
介绍
命令模式(Command mode): 这是Vim的默认模式,在该模式下可以执行命令,例如保存文件、退出Vim等。按下Esc键可以从其他模式切换到命令模式。
编辑模式:
插入模式(Insert mode):插入模式像普通文本编辑器一样输入和编辑文本。按下i
键可以从命令模式切换到插入模式。
附加模式(Append mode):附加模式类似于插入模式,但是光标会位于当前字符的后面,而不是前面。按下a
键可以从命令模式切换到附加模式。
可视模式(Visual mode):可视模式允许你选择文本块进行操作,例如复制、删除或修改选中的文本。按下v
键可以从命令模式切换到可视模式。
命令行模式(Command-line mode):命令行模式用于输入底部命令,例如保存文件、搜索文本等。按下冒号:
键可以从命令模式切换到命令行模式。
模式
不知道当前处于什么模式的话按下ESC就会回到命令模式。
命令模式 常用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 dd 删除(剪切)光标所在行 ndd 删除(剪切)从光标处开始的n行 yy 复制光标所在行 nyy 复制从光标处开始的n行x 删除光标所在位置的字符p 粘贴(将删除或复制的数据粘贴到光标下一行) P 粘贴(将删除或复制的数据粘贴到光标上一行) u 撤销(后退) Ctrl + r 重做上一次被撤销的操作(前进) h/j/k/l 将光标向左/下/上/右移动一个字符/行 w 将光标向后移动一个词(以空格或标点符号分隔)b 将光标向前移动一个词0 (数字) 将光标移动到当前行的行首 $ 将光标移动到当前行的行尾 gg 将光标移动到文件的第一行 G 将光标移动到文件的最后一行 Ctrl+f 向下滚动一页 Ctrl+b 向上滚动一页 Ctrl+d 向下滚动半页 Ctrl+u 向上滚动半页i 从当前光标插入 I 从当前所在行的第一个非空格符处插入(即从开头插入)a 从当前光标的下一个字符处插入 A 从当前所在行的最后一个字符处插入(即从行末尾插入) o 当前光标的下一行插入新的一行,光标移动到行首 O 当前光标的上一行插入新的一行,光标移动到行首r 替换光标所在的字符 R 一直替换光标所在的字符,直到按下Esc键为止 ZZ 退出vim
命令行模式 常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 :wq 保存数据并退出vim :w 将编辑的数据从内存写入硬盘 :w! 若文件属性为只读,强制写入 :q 退出vim环境 :q! 强制退出,且不保存文件 :wq! 强制保存并退出 :set nu 显示行号 :set nonu 不显示行号 :n 光标移动到第n行 :%d 清空当前文件 :w 文件名 将当前文件保存为指定的文件名 :set noai 不自动缩进,解决复制时的缩进问题 :set paste 粘贴模式,解决复制时的缩进问题 :set number 开启行号显示 :set tabstop =4 设置制表符(Tab)的宽度为4个空格 :set ff =unix 设置文件的行尾格式为Unix :set encoding =utf-8 设置文件的编码格式为UTF-8 :set mouse =a 使用鼠标进行文本选择、滚动和其他操作 这些设置是临时的,如果要永久保存设置,可以将它们添加到Vim的配置文件(通常是~/.vimrc或~/.vim/vimrc)中
搜索和替换
1 2 3 4 5 :/pattern 在文件中向下搜索匹配指定模式的文本。:?p attern 在文件中向上搜索匹配指定模式的文本。:s/old/new 将当前行第一个匹配到的old替换为new。:s/old/new/g 将当前行所有匹配到的old替换为new。:%s/old/new/g 将文件中所有匹配到的old替换为new。
可视模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 y 复制选中的文本到剪贴板 d 剪切选中的文本到剪贴板 p 在光标位置粘贴剪贴板中的内容 > 向右缩进选中的文本 < 向左缩进选中的文本= 自动对齐选中的文本 x 删除选中的文本 s 删除选中的文本,并进入插入模式以输入替换的文本 r 替换选中的文本为输入的字符 J 将选中的多行文本合并为一行 ~ 反转选中文本的大小写 U 将选中文本转换为大写 u 将选中文本转换为小写
额外
1 2 export EDITOR ="/usr/bin/vim" #用vim打开crontab crontab -e
参考:
chatgpt
https://www.jianshu.com/p/9e0007ca91b8