install vim not vi

sudo apt install vim

follow the instructions

https://github.com/fuh/vimrc

Installation

  1. Backup your old vim configuration files: mv ~/.vim ~/.vim.orig mv ~/.vimrc ~/.vimrc.orig
  2. Clone and install this repo: git clone https://github.com/hfucn/vimrc.git ~/.vim ln -s ~/.vim/vimrc ~/.vimrc
  3. Setup Vundle: git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim
  4. Install bundles. Launch vim(ignore the errors and they will disappear after installing needed plugins)and run: :PluginInstall
Thst’s it!

How to manage this vimrc?

All plugins are listed in file vundles.vim with detailed comments, just add plugins as you like.
  1. :PluginClean to clean up unused plugins
  2. :PluginInstall to install newly added plugins
  3. :PluginInstall! to upgrade all plugins
Other configurations are also well organized in vimrc.

基本操作

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打开折叠