什么是 vim?
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
常用快捷键
撤销 | u |
---|---|
反撤销 | ctrl+r |
显示文件名 | ctrl+g |
显示行号
- 临时显示行号
如果只是临时显示vim
的行号,只须按ESC
键退出编辑内容模式,输入 :set number
后按回车键,就可以显示行号了。行号显示只是暂时的,退出vim
后再次打开vim
就不显示行号了。
- 永久显示行号
如果想让vim
永久显示行号,则需要修改vim
配置文件vimrc
。如果没有此文件可以创建一个。在启动vim
时,当前用户根目录下的 vimrc
文件会被自动读取,因此一般在当前用户的根目录下创建 vimrc
文件,即使用下面的命令:
1 | $vim ~/.vimrc |
如果要对所有用户生效
1 | $sudo vim /etc/vim/vimrc |
在打开的 vimrc
文件中最后一行输入 set number
,然后保存退出。再次用 vim
打开文件时,就会显示行号了。
查找替换
1 | :s/output/gt #使用gt替换output |
主题及设置
1 | # 查看所有可用的vim主题 |
拼写检查
1 | ]s # 移动到下一个拼写错误 |
vim插件打造IDE
- 安装Vundle
1 | mkdir -p ~/.vim/bundle/ |
vim安装插件
Set up Vundle:
1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Configure Plugins: Put this at the top of your
.vimrc
to use Vundle. Remove plugins you do not need, they are for illustration purposes.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38if &compatible
set nocompatible
end
filetype off
set rtp+=~/.vim/bundle/Vundle.vim/
call vundle#rc()
" Let Vundle manage Vundle
Bundle 'gmarik/vundle'
" Define bundles via Github repos
" 标签导航
Bundle 'majutsushi/tagbar'
Bundle 'vim-scripts/ctags.vim'
" 静态代码分析
Bundle 'scrooloose/syntastic'
" 文件搜索
Bundle 'kien/ctrlp.vim'
" 目录树导航
Bundle "scrooloose/nerdtree"
" 美化状态栏
Bundle "Lokaltog/vim-powerline"
" 主题风格
Bundle "altercation/vim-colors-solarized"
" python自动补全
Bundle 'davidhalter/jedi-vim'
Bundle "klen/python-mode"
" 括号匹配高亮
Bundle 'kien/rainbow_parentheses.vim'
" 可视化缩进
Bundle 'nathanaelkane/vim-indent-guides'
" if filereadable(expand("~/.vimrc.bundles.local"))
" source ~/.vimrc.bundles.local
" endif
filetype onInstall Plugins: Launch vim and run:
PluginInstall
1
Plugin 'nathangrigg/vim-beancount'
vim F5运行
1 | map <F5> :call CompileRunGcc()<CR> |
- vimrc for python
1 | "运行快捷键" |
为了防止配置文件太乱,我们可以通过/.vimrc.bundles管理我们安装的插件。首先创建文件/.vimrc.bundles,然后添加代码如下:
1 | if &compatible |
我们已经指定好了各个插件的路径,接下里就是安装各个插件了。在shell中输入vim,进入命令行模式输入BundleInstall。 Processing表示正在安装,安装成功后那一行前面会变”+”号
注意:由于tagbar依赖于ctags,所以我们还需要用指令安装ctags:
1 | sudo apt-get install ctags |
已经安装好了各个插件,接下里就可以直接用了吗?答案是否定的,我们还需要继续对自己安装的插件进行配置。配置这里也很简单,下面是我的配置,编写~/.vimrc: REF
1 | 依次按键\tb,就会调出标签导航; |
所有可用颜色在目录,插件安装方法可参考这里 REF
Vundle常用命令
VundleBundleList -列举出列表中(.vimrc中)配置的所有插件
:BundleInstall -安装列表中全部插件
:BundleInstall! -更新列表中全部插件
:BundleSearch foo -查找foo插件
:BundleSearch! foo -刷新foo插件缓存
:BundleClean -清除列表中没有的插件 (若要清除,则注释掉.vimrc中的对应内容,再执行此命令即可)
:BundleClean! -清除列表中没有的插件
Vi 编辑文件时中文乱码
- (1) 临时解决办法:
每次打开 vim
后,输入
1 | :set encoding=utf-8 |
- (2) 一次性解决办法:
在当前用户目录下,新建 .vimrc
文件,在里面添加
1 | :set encoding=utf-8 |