1 | << 向左缩进 |
1、vim命令mode下快捷命令
(插入mode——ESC—–>命令mode):
(命令mode—— i —–>插入mode):
/name
从光标开始处向文件尾搜索名为name的字符串(所有完毕后,按n查找下一个,N查找上一个)?name
从光标开始处向文件头搜索名为name的字符串(所有完毕后,按n查找下一个,N查找上一个)(这个不常用)u
取消前一个操作(相当于撤销)[n]yy
拷贝当前开始的n行(省略n则只拷贝当前行)[n]dd
删除当前开始的n行(省略n则只删除当前行)p
粘帖:xx
执行vim命令,xx可以是:1
2
3
4
5
6wq(保存退出)wq!(强制保存并退出)q(退出不保存)q!(强制退出不保存)
w(只是写入,即保存),w [filename] (另存为)
nohl(清除高亮) set nu(显示行号) set nonu(不显示行号)
g/p1/s//p2/g (将文件中的所有p1用p2替换。等效于 %s/p1/p2/g )
[n1,n2]s/p1/p2/g (n1->n2行中的所有p1用p2替换。缺省则当前行 )
number 表示跳转到某一行
2、vim翻页(命令modr插入mode都valid):
pageup (向上翻页,等效于 ctrl+f)
pagedown (向下翻页,等效于 ctrl+b)
3、vim下多行(列)选中复制(or剪切):
- 命令行模式下,将光标移动到需要选中的行的开始,shift+v即进入vim多行选中模式。选中后,y即复制,d即剪切。< 向左缩进,> 向右缩进, == 自动排版.ctrl+c即退出多行选中mode。
- ctrl+v进入多块选中模式(可以选择多列哦)。选中后,y即复制,d即剪切。ctrl+c即退出。
4、vim二进制编辑:
命令行mode下,(打开的时候直接 vim -b xxx 据说 vim不会在文件末添加 0x0a)1
2
3:%!xxd (会将当前文本使用xxd命令显示,二进制的,可做相应的修改)
:%!xxd -r (将xxd风格的二进制显示,转成真实的二进制映像写回到原来的文件)
:wq! (退出)
5、同时打开多个文件:
vim -o file1 file2 file3
vim -O file1 file2 file3 (只是一个横向一个纵向显示)
在已经打开了某个文件的情况下:
:sp fileother
:vs fileother
6、配置vim(下面的插件管理似乎更好)
//for config vim,3 files = .vimrc + taglist_46.zip + ctags-5.8.tar.gz1
2
3
4
5
6
7
8cd /root/Desktop/
unzip taglist_46.zip
cp plugin/taglist.vim /usr/share/vim/vim74/plugin/ (有用的只是这个 taglist.vim )
cp /mnt/hgfs/shareLinux/ctags-5.8.tar.gz .
tar vxzf ctags-5.8.tar.gz && cd ctags-5.8
./configure
make
make install
taglist即解析当前文件中的函数和宏等,将解析结果以左侧abstract窗口的形式展示
提供的功能即从左侧的abstract直接跳到对应的函数中。
ctags安装完成后,terminal下运行
#ctag -R . //即以当前目录为起点递归解析,最后在当前目录下生成tags文件,此后vim即可根据此文件进行跳转
//(试了很多方法,但貌似这个tags只有放在当前project顶级目录才好用……)
#vim -t main //vim打开,直接已main函数作为entry(或者普通mode打开也ok,但应该在tags文件所在目录下运行vim)
进入vim后,
命令行mode,:tag funcABC 可跳转到 funcABC 定义处,如果有多处定义,则 :tn 和 :tp 可依次向后/前查找匹配的函数。
命令行mode,ctrl+] 立即跳转到光标停留的函数的定义处。ctrl+t返回。
//这个cscope不好用。。。。不如直接grep了
find $(pwd) -name “.[ch]” >cscope.files
find . -name “.h” -o -name “.c” -o -name “.cpp” > cscope.files
cscope -bkq -i cscope.files
7、插件管理:
将开源仓库克隆到 ~/.vim/bundle/ 下,取名 Vundle.vim
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Vundle是一个插件管理工具,详细介绍参见github仓库的介绍。 参考
安装一个插件:
按照 Vundle 要求在~/.vimrc中 Vundle的 begin()和end()之间写上插件名字
Plugin ‘tpope/vim-fugitive’
然后随便打开一个vim进入命令行输入mode,
:BundleInstall 即可安装尚未安装的插件(到~/.vim/bundle/ 下)移除一个插件:
按照 Vundle 要求在~/.vimrc中 Vundle的 begin()和end()之间将某个插件去掉
然后随便打开一个vim
:BundleClean查看目前已经安装的插件:
随便打开一个vim
:BundleList
参考的配置
1 | "这个文件是我的vim配置,~/.vimrc |
修正vi编辑器:
vi/vim编辑器在linux中是非常常用的文本编辑工具,但不一定好使,比如编辑的时候可能按方向键会出现莫名奇妙的字符,还有按backspace退格键也可能没有任何作用。修正方法,Terminal中输入 sudo vi /etc/vim/vimrc.tiny 使用vi打开vi的配置文件来修正配置,是不是有点诡异?没关系,能行的。然后按Esc键进入vi编辑器的命令模式, 输入 :set nocompatible (注意不要忘记前面的 : 符号,回车, 此时方向键暂时可以正常使用了,然后按Esc键,输入 :set backspace=2 ,此时删除键也能临时工作了。
然后按方向键找到 配置文件的 set compatible 一行,按i键进入编辑模式, 将它改为 set nocompatible
完了在下一行输入 set backspace=2 ,好了,按Esc键,再键入 :x 保存并退出vi, 以后vi就可以正常使用了