根据Kindle电子书 «VIMが使えるようになる本»总结而成
1. 基本概念
分类 | 操作 | 命令 | 备注 |
---|---|---|---|
基本操作(1) | 保存 | w | w!强制覆盖保存 |
退出 | q | q!强制退出 | |
保存并退出 | wq | x也可以保存退出 | |
打开文件 | e | 比如:e filename.txt |
|
打开文件夹 | e | 比如:e. 打开当前文件所在文件夹,或:e /home/username/ 指定文件夹 |
|
创建文件 | enew | 比如:w newfilename.txt 保存的时候再指定文件名 |
|
基本操作(2) | 移动 | h / j / k / l | 分别为左 / 下 / 上 / 右 |
基本操作(3) | 撤销(undo) | u | |
重做(redo) | Ctrl+r | やり直す | |
基本操作(4) | 复制 | y | yy 复制一行,yw 复制一个单词 |
剪切 | d | dw ,cw 删除一个单词,dd 删除一行 |
|
粘贴 | p | 大写的P是,在光标之前的行粘贴 | |
替换 | r | ||
插入 | 当前字符之前 插入 |
i | |
当前字符之后 插入 |
a | ||
当前行之前 插入 |
I | 大写 | |
当前行之后 插入 |
A | 大写 | |
文本选择 | 选择 | Ctrl + v | 使用Ctrl+v选择后,可以使用hjkl移动光标,修改选择范围 |
选择(行单位) | Shift + v | 以行为单位进行选择 | |
选择后的后续操作 | y / d / p | 复制/剪切/粘贴 | |
行头行尾的输入 | I / A | 使用ctrl+v 或shift+v 选中后,再用I / A 在行头或行尾一次性插入 |
|
一次性替换 | r | 选择后可以一次性替换 | |
移动 | 行头 | 0 或者 ^ | 移动到光标行的行头 |
行尾 | $ | 移动到光标行的行尾 | |
下 一个单词的头部 |
w | ||
上 一个单词的头部 |
b | ||
下移一个page | ctrl+f | 半个page下移,Ctrl+d | |
上移一个page | ctrl+b | 半个page上移,Ctrl+u | |
上移下移一行滚动page | Ctrl+y / Ctrl+e | y是下移,e上移 | |
移动到文件的开头 | gg | ||
移动到文件的末尾 | G | ||
移动到指定行号 | :250 | 移动到第250行 | |
数字结合 | 8k | 上移8行 | |
帮助 | 操作guide | $ vimtutor | 在Cygwin或Linux上使用$ vimtutor |
帮助 | :help | 在vim中使用 | |
更多插入方式 | 当前光标插入 | i和a | 分别为当前光标前插入,当前光标后追加 |
当前行插入 | I和A | 分别为当前行首插入,当前行尾追加 | |
删除当前光标处的字符后插入 | s | 小写为一个字符,大写S为删除当前行 | |
行上,行下追加 | o 和 O | o为行下追加,O为行上追加 | |
删除当前单词后插入 | cw |
2. VIM设定文件
VIM中能设定画面的表示,自动缩进等,在linux中,在home的user目录下:
[ec2-user@ip-10-0-10-11 ~]$ pwd
/home/ec2-user
[ec2-user@ip-10-0-10-11 ~]$ ls -a
. .bash_history .bash_profile .cache plan.txt python-study study .viminfo .vim_runtime
.. .bash_logout .bashrc .data python-dev .ssh .vim .vimrc work
另外,还可以设定行号,背景色,以及是否自动备份等。
3. 检索与替换
分类 | 操作 | 命令 | 备注 |
---|---|---|---|
检索 | 光标后方 开始检索 |
/ | |
光标前方 开始检索 |
? | ||
跳转到检索结果的下一个 |
n | 注意前方检索和后方检索,检索方向不同 | |
跳转到检索结果的上一个 |
N | ||
光标上单词的简单检索 | * | ||
替换 | 替换当前文件所有 | :%s/替换前/替换后/g | %表示文件整体,没有%的话只针对当前行(s - subsitution) |
:%s/替换前/替换后/ | 1. 没有g的话,如果一行中有多个匹配结果,则只替换第一个。 | ||
2. 有g的话,会替换所有的 | |||
替换时确认 | :%s/替换前/替换后/gc | 确认option,y表示替换,n不替换,a全部替换,q终止替换 | |
选择范围内替换 | 用ctrl+v 或shift+v ,然后:s |
:s/替换前/替换后/g |
检索后,:nohl
取消高亮,也可以在.vimrc
中进行配置
4. 更多删除
单位 | 操作 | 命令 | 备注 |
---|---|---|---|
单个文字 | 删除光标处一个文字 | x | |
s | 删除一个文字后,进入插入状态 | ||
一个单词 | 删除光标处一个单词 | dw | |
删除光标处一个单词 | cw | 删除后,进入插入状态 | |
一行 | 删除一行 | dd | |
删除多行 | 3dj | 当前光标行和下面3行 | |
修改3为其他数字,j或k改变方向 | |||
范围内 | 删除特定范围内 | di” | 删除引号内的,比如print("1131313131") ,di( 删除括号内 |
da” | 删除引号内(包含引号)的 | ||
yi” | 复制引号内的内容(光标在引号内),也可以是括号,中括号等 | ||
ya” | 复制引号内的内容(包含引号) |
5. [暂时不用]操作文件夹及buffer管理
因为现在使用vscode的vim,文件夹操作不能使用。但
:e.
可以打开当前文件夹。 buffer管理在当前vscode中也不能使用
- No543. «開いているファイルのディレクトリを開く»
- No559. «バッファ管理»
- No623. «二つのバッファーの比較»
- No688. «ファイルリストを作成する»
- No697. «ウインドウとバッファの関係»
- No713. «ウインドウを閉じずにバッファだけを閉じる»
6. 窗口分割
sp
:水平分割vsp
:上下分割,用q
退出ctrl+w
:窗口之间移动,结合hjkl
调整方向:set scrollbind
:多个子窗口同步滚动,解除用:set noscrollbind
7. [暂时不用]其他
- No725. «ステータスライン表示のカスタマイズ»
- No754. «キー操作を記憶(マクロ操作)»
- No870. «特定の単語を含む行を削除/残す»
- No884. «16進10進変換»
- No909. «Vimに計算をさせる»
- No927. «Makefileでのタブ文字の空白への置き換えを抑制»
- No940. «読み込まれているスクリプトを調べる»
- カーソル下 の ファイル を 開く
- 【Tips】 キーバインド 割 当時 の 注意
.vimrc
を分割する
99. 其他技巧
分类 | 操作 | 命令 | 备注 |
---|---|---|---|
大小写切换 | 转换为小写 | u | 选中范围后,按下u |
转换为大写 | U | 选中范围后,按下U | |
组合行 | 前后行连接 | J | 前后两行,连接后有 空格 |
gJ | 前后两行,连接后无 空格 |