vim编辑器基础操作大全

vim有三种模式:
Command Mode - 命令模式
Insert Mode - 输入模式
Last Line Mode - 底部模式(尾行)
 
vim abc   #打开文件abc
vim + abc    #打开文件abc,光标定位到最后一行
vim +3 abc   #打开文件abc,光标定位到第三行
vim +/imooc abc   #打开文件abc,光标定位在imooc第一次出现的地方
vim aa bb cc   #打开文件aa,bb,cc,在底部模式通过n切换文件
 

Command Mode - 命令模式

1)插入模式
  • [i]:在当前字符前插入字符
  • [I]:在当前行行首插入字符
  • [a]:在当前字符后插入字符
  • [A]:在当前行行末插入字符
  • [o]:在当前行下插入新的一行,从行首输入文字
  • [O]:在当前行下插入新的一行,从行首输入文字
2)从插入模式切换为命令模式
  • [ESC]键
3)移动光标
vi可以使用上下左右光标来移动,但正规的vi是用小写英文字母h,j,k,l分别控制左下上右一格的
  • [ctrl+g]:显示文件信息,统计行号
  • 数字+shift+G 跳到指定行
  • [ctrl+b]:屏幕往后移动一页
  • [ctrl+f]:屏幕往前移动一页
  • [ctrl+u]:屏幕往后移动半页
  • [ctrl+d]:屏幕往前移动半页
  • [gg]、[1G]:移动到文章首行
  • [G]:移动到文章尾行
  • nG:移动到文章第n行
  • [$]、[end]:移动到当前行行尾
  • [0]、[home]:移动到当前行行首
  • [w]:光标跳到下个字的开头
  • [e]:光标跳到下个字的字尾
  • [b]:光标回到上个字的开头
n+空格:光标向右移动n个字符
n+回车:光标向下移动n行
回车/空格:光标向下移动一行/光标向右移动1个字符
n + -/+:光盘向上/下移动n行
 
4)删除文字
  • [x]、[del]:删除光标所在位置的后面一个字符
  • [#x]:6x表示删除光标所在位置的后面6个字符
  • [X]、[backspace]:大写的X,删除光标所在位置的前面一个字符
  • [nX]:20X,表示删除光标所在位置的前面20个字符
  • [dd]:删除光标所在行
  • [ndd]:从光标所在行开始删除n行
  • [s]:删除光标所在的字符并开始插入
  • [S]:删除光标所在的行并开始插入
5)复制
  • [yw]:将光标所在之处到字尾的字符复制到缓冲区
  • [nyw]:复制n个字到缓冲区
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到末行的所有数据
  • [yy]:复制光标所在行到缓冲区
  • [nyy]:复制从光标开始往下的n行
  • [p/P]:p复制的数据从光标下一行粘贴,P则从光标上一行粘贴
6)替换
  • [r]:替换光标所在处的字符
  • [R]:替换光标所到之处的字符,直到按下ESC键
7)恢复上一次操作
  • [u]:撤回到上一个操作,多次按可以多次撤回
  • [ctrl+r]:撤销恢复的上一步操作
8)更改
  • [c#w]:写改光标后1(n)个词。例如,[c3w]表示更改3个词。(空格识别单词)
  • [c#l]:改写光标后n个字母。(删除n个字母重新写)
9)跳至指定的行
  • [ctrl+g]:李处光标所在行的行号。
  • [#G]:例如,15G,表示移动光标至文章15行行首
10)保存并退出
  • [ZZ]:保存并退出

Last Line Mode - 底部模式(尾行)

1)列出行号
  • [set nu]:在文件每一行前面列出行号。
  • [set nonu]:取消行号

补充

自动缩进
  • [set autoindent]:开启缩进
  • [set noautoindent]:取消缩进
搜索时不区分大小写
  • [set ic]:不区分大小写
  • [set noic]:区分大小写
 
2)跳到文件中的某一行
  • [#]:调到第#行
3)查找关键字符
:/word:从光标之后查找word,按n查找下一个
:?word:从光标之前查找字符,按n查找上一个
:n3,n5s/word1/word2/g:在第3行和第5行间,搜索word1,替换为word2。可将/替换为#
:n1,n$s/word1/word2/g:在第1行和末间,搜索word1,替换为word2。
:n1,n$s/word1/word2/gc:在第1行和末间,搜索word1,替换为word2。c参数作用为替换每一个前确认
 
4)保存文件
  • [w]:保存文件
5)离开vi
  • [q]:退出vi,如果无法退出,可以在后面加一个!强制退出
  • [wq]:保存并退出
  • ZZ:文档没修改,不保存退出。修改,则保存退出
  • [w]:保存不退出文件
  • [w filename]:当前内容另存为filename
:r [filename]:在当前光标所在行的下面读入filename文档的内容
:f [filename]:将另一个文件内存添加到当前文件末尾
n1,n2 w [filename]:将n1到n2的内容另存为filename这个文档
e!:将文档还原成最原始状态
:! command:暂时离开vim运行command命令,然后返回vim模式下
6)列出当前打开的vi(若打开了多个vi)
  • [ls]:列出当前vim打开的所有文件
7)切换vim文件(若打开了多个vi)
  • [n] 切换vim的后一个文件
  • [N]切换vim的前一个文件
8)注释
块注释:
1、vim编辑文件,进入命令模式,ctrl+v进行块选择,使用方向键调整
2、再按I进入首行插入模式,输入注释符#,按两次esc退出插入模式。最后退出保存文件
取消注释:ctrl+v进行块选择,使用方向键调整;选择要删除的注释,按下d删除
 
替换注释:
注释格式::起始行号,结束行号s/^/注释符/g
取消注释格式::起始行号,结束行号s/^注释符//g
注:其中的“/” 可以为任意符号
:3,6s/^/#/g 为3~6行添加#注释
:7,9s#^#//#g 为7~9行添加//注释

 

posted @ 2023-01-05 16:04  gpysir  阅读(1363)  评论(1编辑  收藏  举报