文章目录
一、一个简单的vim配置——vimrc
编辑 ~/.vimrc,插入如下代码
syntax on
set nu
set hlsearch
set cindent
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set tabstop=4
set shiftwidth=4
set expandtab
set nowrap
set foldenable
set foldmethod=syntax
set t_ti= t_te=
if &diff
colorscheme evening
endif
"下面的代码能使得在vim中直接能对json文本内容进行格式自动转换,直接输入JsonFormat命令即可
command! JsonFormat :execute '%!python2 -m json.tool' | :execute '%!python2 -c "import re,sys;sys.stdout.write(re.sub(r\"\\\u[0-9a-f]{4}\", lambda m:m.group().decode(\"unicode_escape\").encode(\"utf-8\"), sys.stdin.read()))"'
二、vim中如何非贪婪匹配
例如对于下面一段文本:
<p style="text-align:left;"><span >为维护良好生态环境,保障公平,规范合作和良性竞争,大家之间的合理业务操作,本规范。</span></p>
如果想仅仅替换<>中的内容,并保留中文字,那么可以这么操作
:%s/<.\{-}>//gc
三、在vim中使得python代码折叠的方法
1.下载Python代码折叠vim插件python_fold.vim,下载地址:https://www.vim.org/scripts/download_script.php?src_id=4431
2.mkdir ~/.vim/plugin/
3.mv python_fold.vim ~/.vim/plugin/
即可
四、如何在vim中对内容进行json格式化展现
在.vimrc中加入以下语句
command! JsonFormat :execute '%!python -m json.tool'
然后在vi打开一个文文件后,执行:JsonFormat
可以把该文件的展现内容转换为json格式,类似于jq命令
但是会发现,中文被转换成了Unicode编码。如果想彻底解决这个问题,就得再修改下.vimrc,改为如下代码:
command! JsonFormat :execute '%!python2 -m json.tool'
\ | :execute '%!python2 -c "import re,sys;sys.stdout.write(re.sub(r\"\\\u[0-9a-f]{4}\", lambda m:m.group().decode(\"unicode_escape\").encode(\"utf-8\"), sys.stdin.read()))"'
即可
注意上面写的python2,以防止很多人的linux环境里已经安装了python3
五、vim打开多个窗口后,感觉某个窗口太小,怎么调整
一、横向调整
vim中输入
vertical res +20
或者
vertical resize +20
意思是当前窗口横向增加20个字符宽度
一、纵向调整
vim中输入
res +20
或者
resize +20
意思是当前窗口纵向增加20个字符宽度
五、VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕
VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,其实只要在黏贴前执行下面的操作即可:
set paste
六、vimdiff的时候看不清文字怎么办
在~/.vimrc中加入下面的代码即可:
if &diff
colorscheme evening
endif
# 六、如何让vim再次打开刚才关闭的文件时定位到刚才关闭文件的位置
Vim的全局配置/etc/vim/vimrc,里面有被注释的这么几行:
" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"endif
将注释去掉即可
七、vim如何设置折叠
先在~/.vimrc中加入如下两行就可以用啦:
set foldenable
set foldmethod=syntax
然后常用的命令如下:
za 打开/关闭当前的折叠
zc 关闭当前打开的折叠
zo 打开当前的折叠
zm 关闭所有折叠
- 参考文献
- https://www.cnblogs.com/joeblackzqq/p/10521189.html
- https://www.jianshu.com/p/91c2d7a54eb7