install vim not vi
sudo apt install vim
follow the instructions
Installation
- Backup your old vim configuration files: mv ~/.vim ~/.vim.orig mv ~/.vimrc ~/.vimrc.orig
- Clone and install this repo: git clone https://github.com/hfucn/vimrc.git ~/.vim ln -s ~/.vim/vimrc ~/.vimrc
- Setup Vundle: git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim
- Install bundles. Launch vim(ignore the errors and they will disappear after installing needed plugins)and run: :PluginInstall
How to manage this vimrc?
All plugins are listed in file vundles.vim with detailed comments, just add plugins as you like.- :PluginClean to clean up unused plugins
- :PluginInstall to install newly added plugins
- :PluginInstall! to upgrade all plugins
基本操作
0 | 移到当前行开头 | |
---|---|---|
$ | 移到当前行结尾 | |
cc/c0/cw/c2b/c$ | 各种操作通过c直接进到insert模式修改 | |
r | r主要是把一个字符替换成另一个 | |
R | 进入覆盖模式逐个替换文本 | |
s/5s | s自己会直接替换一个字符, | |
C和S | C会删掉光标到行末尾的文本; S会替换整行文本,2S会往下替换多行文本 | |
D等价于d$ | 从光标往后,删除到行末尾 | |
Y | 操作语义不同于D和C,而是面向整个一行 | |
d0 | 删除到行开头 | |
xp | 对掉前后相连的两个字符,等价于删除一个后再放到当前光标后 | |
. | 重复相同的编辑命令,例如dd后一直 . 就是一直删除 | |
a/i/o/s/c - A/I/O/S/C | A在行最后添加,I在行最前添加,O在上一行,S删除整行再加,C删到末尾再加 | |
c$=C d$=D y$!=Y c0/d0/y0 | ||
~ | 直接在visual模式下切换当前字符大小写 |
移动操作
z. 光标移到中心 | z enter 光标移到顶部 | z- 光标移到底部 |
---|---|---|
ctrl+F/B 往前/后滚动整个屏幕 | ctrl+D/U 往前/后滚动半个屏幕 | |
移到下一行第一个字符:enter或者+ 移到上一行第一个字符- | 跳转到第n行:nG | |
/或者?搜索后,继续搜索的方式:n向同一个方向重复搜索,N向相反的方向重复搜索 | ||
f+x就是在当前行内搜索字符x,按下;重复往后搜索,按下,重复往前搜索 | t+x就是到f+x前一个字符的位置 |
常用的ex操作
set autoindent | |
---|---|
set number / set nu | set nonu |
:r filename | 把文件的内容插入到光标所在位置的下一行 |
:185r filename | 把文件的内容插入到185行后 |
直接在vim执行shell命令:加一个!
:!date
直接在vim内部读取shell的输出结果到文本
:r !date
:r !ls -al
直接对文本中指定行进行排序并覆盖
:20,30!sort
文件打开和跳转操作
打开文件并跳转到指定行 | vi +n file |
|
---|---|---|
在第一个pattern出现的地方打开file | vi +/pattern file vi +/hello\ word file |
这个pattern打开的方式非常有用,比如我可能想离开vim,于是先打一个标记,回来的时候可以快速定位到 |
做标记并跳转 | mx 这里x可以是任意字符,用作书签 ‘x 跳到标记x的所在行开头 `x跳到标记的字符本身 |
只能用在同一个vim session |
折叠操作 | za切换折叠状态 zc关闭折叠 zo打开折叠 |