【Vim】Vim的常用命令
程序员文章站
2024-02-20 20:54:05
...
1 设置
vim里编辑代码可能会因为缩进问题报错:IndentationError: unexpected indent,因为默认使用tab缩进不是对应的4个空格,所以可以手动缩进4个空格或者改掉tab默认的空格数。
还可以设置显示行号,代码折叠,设置语法高亮等等非常多。
cd ~ 进入home下的用户user目录
ls -a 查看隐藏的 .vimrc 文件
touch .vimrc 打开编辑
设置细节:参考博客
在vimrc里设置的特征适用于全局,另外也可以再在vim文件创建编辑时单独设置。
- 注意在全局vimrc里设置
autoindent "换行自动缩进'
的时候复制进去代码段会破坏格式。需要单独在vim编辑的文件里:set paste
暂时取消自动缩进,复制进来之后再:set nopaste
关闭。
系统剪切板和 vim 剪切板
vim的剪切板只能在一个文件(当前窗口)内使用,vim分别打开a和b文件就不能实现两文件之间的复制粘贴。
这时候就需要借助系统剪切板(clipboard)作为中介,实现vim和外界交流。
确保当前系统支持clipboard:
vim --version | grep clipboard
clipboard 前面如果是+ 号表示支持,- 号表示不支持。
不支持先安装:ubuntu
sudo apt-get install vim vim-scripts vim-gtk vim-gnome
系统剪切板(寄存器): ''+
''+y 选中的文件复制到系统剪切板
''+p 从系统剪切板粘贴
如果觉得使用 ‘’+ 麻烦就把默认的剪切板设置为系统剪切板
:set clipboard=unnamed
这样可以直接使用 p 进行粘贴
2 编辑
vim打开文件默认进入的是normal模式,使用 i 切换到insert模式。再按 Esc 进入normal模式。
vim在文件内和系统的剪切板是不通用的。在vim 内进行的复制剪切一般是放在默认的寄存器(register)里面,也可以指定哪些内容暂存在哪个寄存器内。
双引号+名称+操作
''ayiw 复制一个单词到寄存器 a
''bdd 剪切一行内容,暂存在寄存器b中
''bp 将寄存器b 里的内容粘贴出来
在normal模式输入 :reg name
可以查看指定寄存器里的内容。
2.1 noraml(浏览)模式
复制(y)粘贴(p)删除(d 剪切):
先用 v ,移动方向键选择内容
再用 y 复制选择的内容( d 是剪切)
方向键选择位置 用 p 粘贴
命令 | 说明 |
---|---|
yiw | 复制一个单词 |
yy | 复制一行内容 |
yG | 复制到末尾 |
dw | 剪切一个单词 |
dd | 剪切一行内容 |
dG | 剪切到文档末尾 |
x | 删除当前字符 |
c和cc | 删除当前字符、行,并进入insert模式 |
u | 撤销还原 |
2.2 insert(编辑)模式
可以使用ctrl+c/v 或者ctrl+shift+c/v来复制粘贴文件进、出vim的编辑区。
3 插入
命令 | 说明 |
---|---|
i 和 I | 在当前位置前、行首插入 |
a和 A | 在当前位置后、行尾插入 |
o和O | 在当前行之后、之前插入一行 |
4 跳转
命令 | 说明 |
---|---|
gg和G | 跳转到文件头、文件尾) |
Ctrl + d | 向下滚动半屏 |
Ctrl + u | 向上滚动半屏 |
Ctrl + f | 向下滚动一屏 |
Ctrl + b | 向上滚动一屏 |
冒号+行号 | 跳转到指定行;比如:12,跳转到12行; |
$ | 跳转到行尾 |
跳转到行首
5 查找替换
命令 | 说明 |
---|---|
/text | 查找text,按n健查找下一个,按N健查找前一个 |
?text | 查找text,向上查找,按n健查找下一个,按N健查找前一个 |
: s/old/new/ | 用new替换old,替换当前行的第一个匹配 |
: s/old/new/g | 用new替换old,替换当前行的所有匹配 |
:%s/old/new/ | 用new替换old,替换所有行的第一个匹配 |
:%s/old/new/g | 用new替换old,替换整个文件的所有匹配 |
6 保存和退出
命令 | 说明 |
---|---|
:q | 强制退出vim |
:wq | 保存更改退出 |
:q! | 不保存退出 |
如果文件无法编辑保存退出,打开文件的时候使用sudo vim 文件命名
上一篇: nginx开发_配置项