Vi&vim 编辑器
基本操作
基本的保存和退出操作
:wq 和 :wq! 的区别
- 如果文件设置为只读了的话,用 :wq命令是不能保存并退出的;但是最高权限者可通过:wq!来进行文件的保存并退出文件。
- !是强制执行,如果不带!碰上只读文件,会给提示会是只读文件,带了!忽略只读强制写入。
:x 和 :wq 的区别
- :wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
- :x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。
所以用 vi a.txt
编辑时,如果 a.txt 文件还是不存在且没有编辑任何内容的情况下,wq
退出会创建 a.txt,而用 :x
退出的话不会创建。
:q 和 :q! 的区别
- 如果文件有修改,:q 会提示有修改,是否退出,输入y退出。
- 如果文件有修改,:q! 会强制直接退出,并且不对文件进行保留。
注:在正常模式下按组合键shift zz可以保存并退出。
搜索
命令行模式下输入 / + 搜索内容,例如搜索单词 java 命令为 /java
,按 n 跳转到下一个匹配字符位置,按 N 跳转到上一个匹配字符位置。
模式
命令行模式 (command mode/一般模式)
打开文件默认就是命令行模式,任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式。
若输入的字符不是Vi的合法命令,vi会响铃报警。
文本输入模式 (input mode/编辑模式)
在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。
末行模式 (last line mode/指令列命令模式)
也称转义模式。
用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。
进阶使用
多行编辑
ctrl + v 进入 visual block 模式。
- 多行部分列删除:光标移动选中范围,按 d 键删除。
- 多行全部删除:esc 模式下,比如输入
:1,5d
回车,删除的是1到5行。 - 行首插入:若是行首多行插入,光标选中多行,按 shift + i 进入编辑,输入文本,按 esc 退出应用到多行。
- 行尾插入:$ (也就是shift + 4)跳到行尾,移动光标选中多行,shift + a 进入编辑,输入文本,按 esc 退出应用到多行。
文件浏览器和打开多个文件
vim
命令进入编辑器,如果安装的是 neovim,可以看到 neovim 的版本信息。
:Explore 目录
可以打开文件浏览器,可以在其中切换目录和打开文件。
- 按
R
键可以重命名光标选中的文件; - 按
D
键提示是否删除光标选中的文件; - 按
\
键可以在文件列表中查找文件。
选择一个文件打开,编辑后可使用 :w
保存,如果是直接退出就是普通的 :q
或者一起操作 :wq
,如果只是想保存后返回文件浏览器按快捷键 ctrl + o
。
在同一界面打开多个文件
在编辑文件的时候,可以在同一界面下打开多个 layout,:split 文件
是在水平底部新开窗口打开文件,:vsplit 文件
是在垂直方向新开窗口打开文件。
可以使用先按 ctrl + w
再按方向键跳转到相应的左右上下窗格, ctrl + 6
在当前窗格切换到下一个文件。
若文件中有绝对或相对路径链接连接到文件,可以在命令行模式下把光标移动到链接上按 gf
(go file)就可以跳转到相应的文件,甚至如果是外部网页超链接会打开下载网页的 html 文件。
选项卡打开多个文件
进入vim前
vim -p <文件名> 以多标签形式打开文件。如vim -p * 就是编辑当前目录的所有文件
vim编辑中
:tabnew 增加一个标签
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 或gT 前一个
:tabn 或gt 后一个
新建标签页
:tabe <文件名> 在新标签页中打开指定的文件。
:tabnew <文件名> 在新标签页中编辑新的文件。
:tab split 在新标签页中,打开当前缓冲区中的文件。
:tabf 允许你在当前目录搜索文件,并在新标签页中打开。比如 :tabf img.*
。此命令只能打开一个文件。
Vim默认最多只能打开10个标签页。你可以用set tabpagemax=15改变这个限制。
列示标签页
:tabs 显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。
注:g-ctrl-g 意思是先按 g,再按 ctrl + g。
历史命令
在 vi/vim 编辑器中,可以使用历史命令来查看以往输入过的命令。在 vi 的命令模式下,按下冒号 :
进入底部命令行模式,然后按上箭头键(↑
)可以查看之前输入的命令。
在 Vim 中,你可以通过使用 q:
命令来打开命令行模式的历史命令列表。
在 Normal 模式下,按下 q:
将会在 Vim 窗口的底部打开一个窗口,显示之前输入过的命令历史列表。你可以使用上下箭头键浏览历史命令,按回车键选择要执行的命令。
参考
IdeaVim快捷键参考
https://blog.csdn.net/u011118321/article/details/85095670
https://cloud.tencent.com/developer/article/1647068