资讯专栏INFORMATION COLUMN

vim学习笔记

xingpingz / 1352人阅读

摘要:与命令执行相反的操作。撤销当前行的所有操作。行内查找上一处指定字符出现的位置,如果找到,并将光标移至指定字符处。文件内执行替换第一个匹配项替换所有。执行一系列修改。复合命令列表从光标片删至行尾,并进入插入模式。光标移至行尾,并进入追加模式。

安装pathogen.vim(插件管理)

</>复制代码

  1. mkdir -p ~/.vim/autoload ~/.vim/bundle &&
  2. curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Runtime Path Manipulation

如果是新装并且vimrc不存在,请用命令 vim ~/.vimrc新建该文件,并将下面的代码粘贴到文件中。

</>复制代码

  1. execute pathogen#infect()
  2. syntax on
  3. filetype plugin indent on
以pathogen.vim方式安装插件NERDTree

</>复制代码

  1. cd ~/.vim/bundle
  2. git clone https://github.com/scrooloose/nerdtree.git

Then reload vim, run :Helptags, and check out :help NERD_tree.txt.

supertab

</>复制代码

  1. https://github.com/ervandew/supertab.git
gdbmgr下载地址:

</>复制代码

  1. http://vim.sourceforge.net/scripts/download_script.php?src_id=18153
gdbmgr install details

</>复制代码

  1. * needs huge/large vim and linux
  2. cd $HOME/.vim
  3. mv [wherever]/gdbmgr.tar.gz .
  4. gunzip gdbmgr.tar.gz
  5. tar -xf gdbmgr.tar
  6. vi
  7. :helptags ~/.vim/doc
  8. :q

(参考自)http://linux.cn/article-3314-1.html


vundle插件管理

</>复制代码

  1. 从Github下载vundle到本地:

  2. $ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

  3. 配置vimrc文件:

</>复制代码

  1. set nocompatible " be iMproved
  2. filetype off " required! /** 从这行开始,vimrc配置 **/
  3. set rtp+=~/.vim/bundle/vundle/
  4. call vundle#rc()
  5. " let Vundle manage Vundle
  6. " required!
  7. Bundle "gmarik/vundle"
  8. " My Bundles here: /* 插件配置格式 */
  9. "
  10. " original repos on github (Github网站上非vim-scripts仓库的插件,按下面格式填写)
  11. Bundle "tpope/vim-fugitive"
  12. Bundle "Lokaltog/vim-easymotion"
  13. Bundle "rstacruz/sparkup", {"rtp": "vim/"}
  14. Bundle "tpope/vim-rails.git"
  15. " vim-scripts repos (vim-scripts仓库里的,按下面格式填写)
  16. Bundle "L9"
  17. Bundle "FuzzyFinder"
  18. " non github repos (非上面两种情况的,按下面格式填写)
  19. Bundle "git://git.wincent.com/command-t.git"
  20. " ...
  21. filetype plugin indent on " required! /** vimrc文件配置结束 **/
  22. " /** vundle命令 **/
  23. " Brief help
  24. " :BundleList - list configured bundles
  25. " :BundleInstall(!) - install(update) bundles
  26. " :BundleSearch(!) foo - search(or refresh cache first) for foo
  27. " :BundleClean(!) - confirm(or auto-approve) removal of unused bundles
  28. "
  29. " see :h vundle for more details or wiki for FAQ
  30. " NOTE: comments after Bundle command are not allowed..
  31. PluginInstall 安装已经配置的插件
  32. PluginSearch 查找vim-scripts仓库中的插件
  33. PluginClean 清除配置文件中不存在的插件

打造python IDE需要的相关插件

</>复制代码

  1. Bundle "scrooloose/nerdtree"
  2. Bundle "davidhalter/jedi-vim"
  3. Bundle "SuperTab"

vim命令备忘

</>复制代码

  1. $ vim -u NONE -N (启动时不加载自己的vimrc,并且不进入兼容模式)
  2. c 与 d 都是删除,c操作完成后会进入插入模式,而d会留在普通模式。
  3. daw 删除当前单词(delete a word)。
  4. nyy 复制n行,前面可以加小写字母,定义不同的缓冲区。
  5. nyw 复制n个单词,前面可以加小定字母,定义不同的缓冲区。
  6. y^ 和 y$ 从当前光标复制到行首或行尾。
  7. [a]p[a]P 粘贴指定剪切板中指定缓冲区到当前行下方或上方。
  8. R 覆盖模式。
  9. J 合并当前行与下一行。
  10. n+ 和 n- n为数字,光标下移或上移n行。
  11. nG 和 G n为行号,光标移到指定行,无行号时(可以理解为无穷大),光标移至最后行。
  12. . 重复上次修改。
  13. u 与.命令执行相反的操作。
  14. U 撤销当前行的所有操作。
  15. f{char}/t{char} 行内查找下一处指定字符出现的位置,如果找到,并将光标移至指定字符处。
  16. F{char}/T{char} 行内查找上一处指定字符出现的位置,如果找到,并将光标移至指定字符处。
  17. ; 重复查找上次f命令所查找的字符。
  18. , 与;命令执行相反的操作。
  19. / 文档中向下查找匹配项。
  20. ? 文档中向上查找匹配项。
  21. n 重复查找上次/命令所查找的匹配项。
  22. N 与n命令执行相反的操作。
  23. :[n,m ]s/target/replacement[/g] [n->m行内](行内)执行替换第一个匹配项[替换所有]。
  24. :%s/target/replacement[/g] (文件内)执行替换第一个匹配项[替换所有]。
  25. * 选中光标所在单词。
  26. & 重复执行:s命令;回退命令为u。
  27. qx{changes}q 执行一系列修改。
  28. x 重复执行qx{}q命令;回退命令为u。
  29. e filename 编辑名为filename的文件。
复合命令列表

</>复制代码

  1. C <=> c$ 从光标片删至行尾,并进入插入模式。
  2. s <=> cl 删除当前字符,并进入插入模式。
  3. S <=> ^c 删除整行,并进入插入模式。
  4. I <=> ^i 光标移至行首,并进入插入模式。
  5. A <=> $a 光标移至行尾,并进入追加模式。
  6. o <=> A 在当前行下新起一行,并进入插入模式。
  7. O <=> ko <=> k$a 在当前行上新起一行,并进入插入模式。
多缓冲区操作快捷键

</>复制代码

  1. 1、多文件编辑模式
  2. 1)argument list模式,就是在打开Vim编辑器时,携带多个文件路径参数。
  3. 2)buffer list模式,就是在进入Vim编辑器后,打开多个缓冲区进行编辑。
  4. 2、单一缓冲区打开多个文件
  5. :files显示目前打开了哪些文件
  6. :n切换到下一个缓冲区内容
  7. :N切换到上一个缓冲区内容
  8. :2n切换到下下个缓冲区内容
  9. :bn下一个缓冲区内容(buffer next
  10. :bp上一个缓冲区内容(buffer previous
  11. 3、多个缓冲区打开多个文件
  12. :sp [filename]打开一个新的缓冲区,如果有filename则内容为该文件,否则为当前文件
  13. Ctrl+w n新建一个缓冲区
  14. Ctrl+w q退出光标所在的缓冲区
  15. Ctrl+w j光标移动到下一缓冲区
  16. Ctrl+w k光标移动到上一缓冲区
  17. Ctrl+w l光标移动到右一缓冲区
  18. Ctrl+w h光标移动到左一缓冲区
  19. Ctrl+w v左右切割窗口新建缓冲区
  20. Ctrl+w s上下切割窗口新建缓冲区
  21. Ctrl+w o使光标所在缓冲区最大化,其他缓冲区隐藏
利用vundle方式打造一个最基本的IDE

下列是.vimrc文件的配置,第一次进入vim,执行:PluginInstall,会自动安装所列插件,用vim打开的一python文件,再按F3,你就可以看到一个基本的IDE了。同时定义了F5,F6来编译运行c,c++,但其代码提示还没有考虑。

</>复制代码

  1. set nocompatible "进入非兼容模式
  2. set rtp+=~/.vim/bundle/vundle/ "vundle的安装配置
  3. call vundle#rc()
  4. " let Vundle manage Vundle
  5. " required!
  6. Bundle "gmarik/vundle"
  7. " 最基本的插件
  8. Bundle "davidhalter/jedi-vim" "python插件
  9. Bundle "SuperTab" "利用tab键进行补全
  10. Bundle "ctags.vim" "Ctags -R 生成标签
  11. Bundle "taglist.vim" "函数、变量列表
  12. Bundle "winmanager" "窗口管理
  13. filetype plugin indent on "代码高亮需要的配置
  14. " TagLIst settings.
  15. let Tlist_Show_One_File=1
  16. let Tlist_Exit_OnlyWindow=1
  17. " winManager settings.
  18. let g:winManagerWindowLayout="FileExplorer|TagList"
  19. " nmap wm :WMToggle
  20. " My Shortcut.
  21. map :Tlist
  22. map :WMToggle
  23. "F5编译和运行C程序,F6编译和运行C++程序
  24. " 请注意,下述代码在windows下使用会报错
  25. " 需要去掉./这两个字符
  26. " C的编译和运行
  27. map :call CompileRunGcc()
  28. func! CompileRunGcc()
  29. exec "w"
  30. exec "!gcc % -o %<"
  31. exec "! ./%<"
  32. endfunc
  33. " C++的编译和运行
  34. map :call CompileRunGpp()
  35. func! CompileRunGpp()
  36. exec "w"
  37. exec "!g++ % -o %<"
  38. exec "! ./%<"
  39. endfunc
  40. set autowrite " Automatically save before commands like :next and :make
  41. set hidden " Hide buffers when they are abandoned
  42. set mouse=a " Enable mouse usage (all modes)
  43. set hls
  44. set shortmess=atI "启动时不显示帮助乌干达儿童提示
  45. " Prefer spaces to tabs
  46. set tabstop=4
  47. set shiftwidth=4
  48. set expandtab
  49. set nu!
YouCompleteMe替换代码提示

后来发现YCM是比较强大的代码提示插件,试着配置了一下,感觉不错,以下是一些需要注意的地方:

</>复制代码

  1. "插件部分换成下面的,YCM已经集成了SuperTab,语法检查python可以用 davidhalter/jedi 。
  2. Bundle "Valloric/YouCompleteMe"
  3. Bundle "ctags.vim"
  4. Bundle "taglist.vim"
  5. Bundle "winmanager"

使用命令 PluginInstall,完成插件的安装,这样其它插件就都算安装好了,除了YCM。

编译语法补全模块,在终端下执行以下命令:
$HOME/.vim/bundle/YouCompleteMe
并执行 install.sh --clang-completer

拷贝~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py 到~/下,并做相应的修改。
4.相应的在~/.vimrc中进行一些设置及快捷键的定义,这可以参考上节的内容。

------------------------------------------------------------(分割线,内容已完,下面是一些备忘)
clang++ --std=c++0x -stdlib=libc++ new_feature.cpp

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24806.html

相关文章

  • Linux学习笔记:4.Vim编辑器(1)

    摘要:概述用户经常需要对系统配置文件进行文本编辑,所以至少掌握一种文本编辑器,首选编辑器是。的命令几乎全部都可以在上使用,安装了的系统,在命令行输入,实际启动的是编辑器。 Vi/Vim概述 Linux用户经常需要对系统配置文件进行文本编辑,所以至少掌握一种文本编辑器,首选编辑器是Vi/Vim。几乎任何一个发行版都有Vi或者Vim编辑器。 Vi编辑器可以对文本进行编辑、删除、查找和替...

    hss01248 评论0 收藏0
  • Linux学习笔记:5.Vim编辑器(2):三种模式和命令

    摘要:的种模式一般模式编辑模式和命令模式。当进入编辑模式,在屏幕的尾行会出现插入的字样。命令模式在一般模式下,输入或者,即可以进入命令模式。在该模式下,我们可以进行搜索保存替换退出显示行号等操作。命令如下表所示。 Vim的3种模式:一般模式、编辑模式和命令模式。 一般模式 当我们是用vim filename编辑一个文件的时候,默认进入该文件的一般模式。 打开文件的命令有很多,如下图所示...

    Benedict Evans 评论0 收藏0

发表评论

0条评论

xingpingz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<