vim日常使用
如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)
Vim的几种模式
- 正常模式:可以使用快捷键命令,或按:输入命令行。
- 插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
- 可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
- 替换模式:正常模式下,按R进入。
正常模式
G
可以跳到最后一行gg
可以跳到第一行M
:移动到屏幕的中央字符移动
- 上下左右键,一个一个字符移动
- hjkl:左/下/上/右
单词移动
- w:移动到下一个单词首字母(包含标点)
- W:移动到下一个单词首字母(不包含标点)
- b:移动到上一个单词首字母(包含标点)
- B:移动到上一个单词首字母(不包含标点)
- e/E移动到下一个单尾字母/(包含标点)
逐句移动
(
移动到句子的开头)
移动到句子的结尾
段落
- {:移动到段落的开头
- }:移动到段落的结尾
底行模式命令
常用命令,ESC后加上冒号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16q 退出
w 保存
q! 强制退出
wq! 强制保存退出
set nu 显示行号
set nonu 不显示行号
/word 查找内容word n:下一个 N:上一个
noh 取消高亮
N 跳转到N行
. 当前光标行
$ 缓冲区的最后一行
# 替换
开始行,结束行 s/被替换的诗句/替换的内容
1 s/sad/ddd 将第一行的第一个sad替换为ddd
1 s/sad/ddd/g 将第一行的所有sad替换为ddd
编辑模式
a:光标下一位
A:光标的行尾
i:光标之前
I:光标行的头
o:光标下一行
O:在光标这一行(当前行挤下去)
yy:复制
- 3yy:从当前行复制3行
dd:删除
- 3dd:从当前行删除3行
p:粘贴
u:撤销
启动Vim
vim -c cmd file-
: 在打开文件前,先执行指定的命令;vim -r file-
: 恢复上次异常退出的文件;vim -R file-
: 以只读的方式打开文件,但可以强制保存;vim -M file-
: 以只读的方式打开文件,不可以强制保存;vim -y num file-
: 将编辑窗口的大小设为num行;vim + file-
: 从文件的末尾开始;vim +num file-
: 从第num行开始;vim +/string file-
: 打开file,并将光标停留在第一个找到的string上。vim --remote file-
: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话,这个很有用。但要注意, 如果你用vim,会寻找名叫VIM的服务器;如果你已经有一个gvim在运行了, 你可以用gvim –remote file在已有的gvim中打开文件。
vim多行注释和取消注释
多行注释:
1 | 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 |
取消多行注释:
1 | 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列 |
强制保存
在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。
每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,重新编辑。
底行命令模式执行:
:w !sudo tee %
1
2
3
4w: 表示保存文件
!: 表示执行外部命令
tee: linux命令,这个有点复杂,可以查看linux命令帮助
%: 在执行外部命令时,%会扩展成当前文件名;这个%区别于替换时的%,替换时%的意义是代表整个文件,而不是文件名上述方式非常完美的解决了不能保存只读文件的问题,但毕竟命令还是有些长,为了避免每次输入一长串的命令,可以将它映射为一个简单的命令加到 .vimrc 中:
1
2" Allow saving of files as sudo when I forgot to start vim using sudo.
cmap w!! w !sudo tee > /dev/null %这样,简单的运行:w!!即可。命令后半部分> /dev/null作用为显式的丢掉标准输出的内容。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凉月の博客!
评论