快速入门vim——常用vim配置、快捷按键、WinManager插件
如果你不想手动配置,这里还为你准备了脚本。详见文章末尾,*(^_^)*。
常用配置
Ubuntu下vim配置所在/etc/vim/vimrc
set nocompatible "关闭vi兼容模式
set fileencoding=utf-8 "Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
set encoding=utf-8 "Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等
set cursorline "推荐设置, 将光标所在行以下划线标注显示
set smartindent "开启智能缩进模式, 其它模式还包括cindent, autoindent
set nu " 开启行号显示
set ic "搜索时,忽略大小写
set is "开启输入关键字, 立即匹配
set hlsearch "高亮显示搜索结果
set guifont=Consolas:h12 "win平台Gvim的设置界面字体设置
colorscheme torte "主题颜色设置
set nobackup "设置保存时,不生成备份文件
set noundofile "设置不生成undo文件
set tabstop=4 "设置tab宽度为4个空格的宽度
set softtabstop=4
set shiftwidth=4
set expandtab " 注意在set expandtab情况下,可以使用命令:%retab!,将tab换成空格。在set noexpandtab情况下,使用命令:%retab!,可以将空格转成tab
au BufNewFile,BufRead *.ll set filetype=masm " 设置llvm IR文件,以masm的样式显示
set ff=unix " ff 是fileformats 的缩写
func! HEX() "调用该函数后,文件以16进制显示
exec "w"
exec "%!xxd"
endfunc
func! EXPANDTAB() "调用该函数后,文件中的所有tab转换为4个空格
set expandtab
%ret! 4
endfunc
"-- WinManager 配置 --
let g:winManagerWindowLayout="FileExplorer" " 设置我们要管理的插件
func! WM()
exec "WMToggle"
endfunc
常用插件
Vim 得益于广大开发者的支持,各种繁多的插件使得 Vim 更加强大方便和益用。以下只罗列部分自己用到的,更多的自己需要的可以善用搜索。
ctrlp 优雅的地打开源代码
nerdtree 优雅的地浏览文件目录
snipmate 优雅的代码自动片断
supertab 优雅的代码补全
tabular 优雅的对齐
tagbar 优雅的outline
css-color 优雅的在vim里查看css颜色
vim-fugitive 优雅的在vim里使用git
vim-powerline 很美观实用的状态栏
vim-surround 优雅的编辑tag
vundule 优雅的管理你的vim插件
vimwiki 优雅的内建wiki
colorselector 优雅的像女人试衣服一样试配色
配置主题
配置主题需要在vimrc中以下面的命令指定主题,例如指定主题为elflord
colorscheme elflord
常见的主题有:
default
elflord
orning
eachpuff
late
lue
elek
vening
urphy
ron
torte
darkblue
desert
koehler
pablo
shine
zellner
每种主题的效果可以看这里
常用快捷键
文件操作
命令 | 解释 |
---|---|
:e filename | 打开文件编辑 |
:w | 保存文件 |
:q | 退出vim |
:q! | 退出vim,不保存文件 |
:x | 保存文件,退出vim |
:sav filename | 另存为文件为filename |
. | 重复1次之前更改的操作 |
5. | 重复5次之前更改的操作 |
在文件中移动
命令 | 解释 |
---|---|
k or Up Arrow | move the cursor up one line |
j or Down Arrow | 向下移动光标 |
e | 将光标移动到单词的结尾 |
b | 将光标移动到单词的开头 |
0 r ^ | 将光标移动到行首 |
G | 将光标移动到文件最后一行的行首 |
gg | 将光标移动到文件第一行的行首 |
:59 | 移动光标到59行 |
20| | 将光标移动到第20个字符列 |
% | Move cursor to matching parenthesis |
[[ | 跳转到function的开头 |
[{ | 跳转到block的开头 |
Ctrl + o | 跳转到光标上一次停留的位置 |
剪切、复制和粘贴
命令 | 解释 |
---|---|
y | 复制选中的文本到剪贴板 |
p | 粘贴剪贴板中的内容 |
dd | 剪切当前行 |
yy | 复制当前行 |
y$ | 复制光标位置到行尾的所有内容到剪贴板 |
yw | 复制一个单词到剪贴板 |
D | 剪切光标位置到行尾的所有内容到剪贴板 |
搜索
命令 | 解释 |
---|---|
/word | 从上到下搜索word |
?word | 从下到上搜索word |
* | 从上到下搜索光标停留处的word |
# | 从下到上搜索光标停留处的word |
/\cstring | 搜索 STRING 或者 string |
/jo[ha]n | 搜索 john 或 joan。vim的搜索支持正则表达式,如果要搜索"[",需要转义,如:/\[ |
/< the | 搜索以 the开头的单词 |
/the> | 搜索以 the结尾的单词 |
/< the> | 搜索 the单词 |
/fred|joe | 搜索 fred 或 joe单词 |
/<\d\d\d\d> | 搜索 4 个数字组成的单词 |
/^\n{3} | 搜索 3个连续空行 |
替换
命令 | 解释 |
---|---|
:%s/old/new/g | 替换文件每行的第一个old为new |
:%s/onward/forward/gi | Replace onward by forward, case unsensitive |
:%s/old/new/gc | 替换文件中所有的old为new,每次一都会确认后才替换 |
:2,35s/old/new/g | 替换文件中第2-35行所有的old为new |
:5,$s/old/new/g | 替换文件中第5行到结尾所有的old为new |
:%s/^/hello/g | 为每行首增加hello |
:%s/$/Harry/g | 为每行尾增加Harry |
:%s/ *$//g | 删除每行结尾的空白符 |
:g/string/d | 删除所有包含string的行 |
:v/string/d | 删除所有不包含string的行 |
s/Bill/Steve/ | 替换当前行的第一个Bill为Steve |
s/Bill/Steve/g | 替换当前行的所有Bill为Steve |
:%s/Bill/Steve/g | 替换文件中的所有Bill为Steve |
:%s/^M//g | 删除 DOS 中的回车换行 (^M) |
:%s/\r/\r/g | 转换消除 DOS中的回车换行成换行 |
大小写转换
命令 | 解释 |
---|---|
Vu | 输入V进入VISUAL BLOCK 模式选择文本,然后输入u,将所有选择文本转化为小写 |
VU | 输入V进入VISUAL BLOCK 模式选择文本,然后输入u,将所有选择文本转化为大写 |
g~~ | Invert case |
VeU | 将一个单词转化为大写 |
Ve~ | 一个单词切换大小写 |
:set ignorecase | 设置搜索忽略大小写,可以简写为set ic |
:%s/<./\u&/g | 将所有单词首字母大写 |
:%s/<./\l&/g | 将所有单词首字母小写 |
:%s/.*/\u& | 将每行首字母大写 |
:%s/.*/\l& | 将每行首字母小写 |
读写文件
命令 | 解释 |
---|---|
:1,10 w outfile | 将1-10行写到当前目录下名为outfile文件中 |
:1,10 w >> outfile | 将1-10行追加到当前目录下名为outfile文件中 |
:r infile | 将当前目录下infile名字的文件内容插入到当前行之下 |
:23r infile | 将当前目录下infile名字的文件内容插入到23行之下 |
文件浏览器
vim自带的文件浏览器并不友好,推荐使用winmanager插件,下载地址,提取密码:ue7o
安装插件的步骤:
1.下载winmanager插件到Downloads文件夹
2.执行以下命令安装插件以及配置vim
cd ~/Downloads
unzip winmanager.zip -d winmanager# 解压
mkdir -p ~/.vim/doc/ # 如果已经有了该目录可以跳过此步骤
mkdir -p ~/.vim/plugin/ # 如果已经有了该目录可以跳过此步骤
cp ~/Downloads/winmanager/doc/winmanager.txt ~/.vim/doc/
cp ~/Downloads/winmanager/plugin/* ~/.vim/plugin/
# WinManager配置写入vimrc
sudo sh -c 'echo "
\"-- WinManager setting --
let g:winManagerWindowLayout=\"FileExplorer\" \" 设置我们要管理的插件
func! WM()
exec \"WMToggle\"
endfunc" >> /etc/vim/vimrc'
3.使用winmanager插件,使用vim打开/tmp/1.txt文件,然后在vim中执行:call WM(),即可打开winmanager,如下图所示:
关闭winmanager,再次执行call WM()即可
和 Unix 系统交互
命令 | 解释 |
---|---|
:!pwd | 执行Linux系统命令pwd |
!!pwd | 执行Linux系统命令pwd,并将结果插入到该文件 |
:sh | 打开sh,暂时回到linux命令行 |
分屏显示
命令 | 解释 |
---|---|
:split filename | 横向分割窗口,打开文件 |
ctrl-w up arrow | 选择上一个窗口 |
ctrl-w ctrl-w | 选择下一个窗口 |
:vsplit file | 竖向分割窗口,打开文件 |
Marks
命令 | 解释 |
---|---|
m {a-z} | 标记当前位置为{a-z} |
’ {a-z} | 移动光标到标签{a-z} |
‘’ | 移动光标到上一个标签 |
文本缩进
命令 | 解释 |
---|---|
:set autoindent | 打开自动缩进 |
:set smartindent | 打开智能缩进 |
:set shiftwidth=4 | 设置缩进的宽度 |
>> | 向右增加缩进 |
<< | 向左增加缩进 |
=% | 调整()或{}之间的缩进 |
VG= | 重新调整全文的缩进 |
语法高亮
命令 | 解释 |
---|---|
:syntax on | 打开语法高亮 |
:syntax off | 关闭语法高亮 |
:set syntax=perl | 设置语法高亮为perl模式,前提是必须有perl语法高亮的配置 |
vim按键图
一键配置vim
如果你不想手动配置,这里还为你准备了脚本,下载,提取密码: bobc
预先将vim_config.tar.gz下载到~/Downloads中
使用方法:
cd ~/Downloads
tar -zxvf vim_config.tar.gz # 解压
cd vim_config
./vim_config.sh # 配置vim
执行完以上命令后,你就可以和vim快乐的相处了。