1. 配置vim
修改配置文件:vim ~/.vimrc
1.1 永久显示行号
set number
1.2 配置vim单词高亮
set hls
1.3 配置tab和空格
1.3.1 tab缩进用空格表示
set expandtab
当然set noexpandtab 则是用制表符表示一个缩进
1.3.2 设置缩进/回退分别为4个空格
set tabstop=4 softtabstop=4 shiftwidth=4
tabstop
表示按一个tab之后,显示出来的相当于几个空格,默认的是8个。
softtabstop
表示在编辑模式的时候按退格键的时候退回缩进的长度。
shiftwidth
表示每一级缩进的长度,一般设置成跟 softtabstop 一样
1.3.3 可视化tab和空格
set list
set listchars=tab:>~,space:.
如果想要在打开代码文件时,才显示空格或 tab 字符,打开其他类型文件,例如 txt 文件、markdown 文件、makefile 文件等,不显示空格或 tab 字符,就可以使用 :setlocal list
命令。如果需要设置成全局状态,所有窗口都开启这个设置,可以使用 :set list
命令。
由于把 tab 字符显示为 ^I
不够直观,不想在行末显示 $
字符,且需要显示空格,所以再执行 set listchars=tab:>~,trail:.
命令来设置 tab 字符和空格的显示样式,且行末不显示字符。
如果想要所有空格都显示“.”,则需要将trail 改为space即可。
同时,为了方便区分于代码文件自身的颜色高亮,可以使用下面命令来设置可见的空格和 tab 字符显示为灰色,不那么显眼,方便区分于代码文件自身的颜色高亮:
highlight.MyTabSpace.guifg=darkgrey.ctermfg=darkgrey
match.MyTabSpace./\t\|./
1.4 更多的配置,可以使用help命令来查看哦
可以使用 :help 'list'
命令查看 list
选项的说明。
可以使用 :help 'listchars'
命令查看 listchars
选项的说明。
可以使用 :help :highlight
命令查看设置颜色高亮的更多说明。
可以使用 :help :match
命令查看如何设置指定字符串的显示颜色组。
可以使用 :help :autocmd
命令查看如何针对特定类型文件自动执行指定命令。
最后,把最终的配置粘出来供大家参考啦
set number
set.hls
set.expandtab
set.tabstop=4.softtabstop=4.shiftwidth=4
set.list
set.listchars=tab:>~,space:.
highlight.MyTabSpace.guifg=darkgrey.ctermfg=darkgrey
match.MyTabSpace./\t\|./
参考:
vim技巧:设置空格和Tab字符可见,并自定义显示的字符颜色 - SegmentFault 思否使用 Windows 下的一些 IDE(例如 Source Insight)查看代码时,可以设置空格和Tab字符可见。本篇文章介绍在 vim 中如何进行这个设置,并自定义显示的字符颜色。具体包括下面的内容:https://segmentfault.com/a/1190000021101602vim 怎么显示空格_浅谈Vim中的Tab与空格缩进 - CodeAntenna
https://codeantenna.com/a/0sTUwZN7Ow
2. Vim 删除/替换(字符)
2.1 删除^M字符
Unix系统使用0xA
作为换行符,Windows使用0xD 0xA
作为换行符,^M
是0xD
在Vim中的显示。0x0D = 13
,M是英语中的第13个字符。
使用命令
:%s/^M//g
但要注意,Vim中^M
字符的输入方式是按住Ctrl
键,然后依次按下v
,m
键,松开Ctrl
键即可。
2.2 vim多行删除
方法一:
单行删除,:1(待删除行)d 多行删除 ,:1,10d 注:d或者de 都可以
方法二:
光标所在行,dd 光标所在行以下的N行,Ndd
3. 复制粘贴
3.1 选中某几行复制粘贴
方法1: 光标放到第6行, 输入:2yy 光标放到第9行, 输入:p 此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。 方法2: 命令行模式下输入 6,9 co 12 复制第6行到第9行之间的内容到第12行后面。 方法3: 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代 光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
3.2 选中某一行的一些单词复制粘贴
快速选中一个词(首先将光标移动到单词开头):v+e
复制:y
粘贴:p
4. Vim 匹配
(1)匹配sum
/sum
你会发现,怎么把newsum中的sum也匹配出来了,即其不是精确匹配
/\<sum\>
就是精确匹配了。
5. VIM 批量缩进
比如第3——231行缩进:
:3,231>
6. VIM光标移动
6.1 vim光标以单词为单位移动
快捷键 | 功能描述 |
---|---|
w 或 W | 光标移动至下一个单词的单词首 |
b 或 B | 光标移动至上一个单词的单词首 |
e 或 E | 光标移动至下一个单词的单词尾 |
nw 或 nW | n 为数字,表示光标向右移动 n 个单词 |
nb 或 nB | n 为数字,表示光标向左移动 n 个单词 |
6.2 vim光标移动至行首或行尾
快捷键 | 功能描述 |
---|---|
0 或 ^ | 光标移动至当前行的行首 |
$ | 光标移动至当前行的行尾 |
n$ | 光标移动至当前行只有 n 行的行尾,n为数字 |
6.3 vim 光标移动至指定字符
快捷键 | 功能描述 |
---|---|
fx | 光标移动至当前行中下一个 x 字符处 |
Fx | 光标移动至当前行中下一个 x 字符处 |
6.4 vim光标移动到指定行
快捷键 | 功能描述 |
---|---|
gg | 光标移动到文件开头 |
G | 光标移动至文件末尾 |
nG | 光标移动到第 n 行,n 为数字 |
:n | 编辑模式下使用的快捷键,可以将光标快速定义到指定行的行首 |
6.5 vim光标移动到匹配括号处
程序员在编辑程序时,经常会为将光标移动到与一个 "(" 匹配的 ")" (对于 [] 和 {} 也是一样的)处而感到头疼。Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是 "%"。
比如,在 /etc/init.d/sshd 脚本文件中(最好还是复制后练习,小心驶得万年船),想迅速地将光标定位到与第 49 行的 "{" 相对应的 "}" 处,则可以将光标先定位在 "{" 处,然后再使用 "%" 命令,使之定位在 "}" 处,如图 6 所示。
使用"%"命令定位括号
7. vim打开文件时乱码
1、用vim打开.vimrc配置文件
vim ~/.vimrc
2、在.vimrc中加入如下内容
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030