Vim

屏幕显示按键

安装vim

INSTALL

$ sudo apt-get install vim vim-scripts vim-doc
$ sudo apt-get install vim-addon-manager # 插件管理
$ sudo apt-get install vim-gnome         # 系统黏贴板支持

升级vim

升级vim

$ sudo add-apt-repository ppa:jonathonf/vim
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install vim-nox

# vimrc 配置
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set termencoding=utf-8
set fileformats=unix

" 设置gvim
winpos 100 100          "设置初始界面位置
set lines=25 columns=85 "设置初始界面大小

set gfn=Courier_New:h14 # 字体 字号
colorscheme torte      # 主题
set guioptions-=m      # 隐藏菜单栏
set guioptions-=T      # 隐藏工具栏目
:set fileencoding       ,  查看编码
:set fileencoding=utf-8 , 然后 w 存盘 一下即可转化为 utf8 格式,
:set fileencodings=utf-8 ,然后 w 存盘 一下即可转化为 utf8 格式,
:set fileencodings=cp936 ,然后 w 存盘 一下即可转化为 ANSI 格式。

VI 技巧

命令行模式下输入

:6,9 co 12   复制第6行到第9行之间的内容到第12行后面。


有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :

:'a , 'b co 'c   复制操作
:'a , 'b m  'c   剪切操作

要删除多行的话,可以用 :
:5, 9 de

YouCompleteMe

安装

Ubuntu Linxu x64

$ sudo apt-get install build-essential cmake
$ sudo apt-get install python-dev python3-dev

$ sudo apt-get install golang           # 搭建go环境
$ cp -vrf /mnt/.vim/bundle/*  ~/.vim/bundle/

$ git clone --depth 1 --recursive https://github.com/Valloric/YouCompleteMe.git \
        $HOME/.vim/bundle/YouCompleteMe

$ cd $HOME/.vim/bundle/YouCompleteMe

$ cd crfasrnn
$ git submodule update --init --recursive

$ ./install.py --clang-completer  # c/c++
$ ./install.py --gocode-completer # go
$ ./install.py --all
Vundle
Plugin 'Valloric/YouCompleteMe'

YouCompleteMe的配置

YouCompleteMe的配置

YouCompleteMe的配置 2

$HOME/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py 添加:

flags = [
'-Wall',
  ...
'-isystem',
'./tests/gmock/include',
'-isystem',       # 此行及以下,为添加行,检索 C/C++头文件
'/usr/include',
'-isystem',
'/usr/include/c++/5.4.0',
'-isystem',
'/usr/include',
'/usr/include/x86_64-linux-gnu/c++',
]

vim实用技巧

参见

$ vim-addons status
$ vim-addons install omnicppcomplete

如何判断文件类型?

防止vim 鼠标右键黏贴,排版错乱。 设置: .. code-block:: bash

:set paste

  • 技巧 24 面向列块的可视模式编辑表格数据

  • 技巧 30 在指定范围上执行普通模式命令

    normal

  • 技巧51 用精确的文本对象选择区

    xml 编写技巧

  • 录制宏: qa 操作序列 q, @a, @@

示例

在一个只有一行且这一行只有“1”的文本中,键入如下命令:

  • qaYp<C-a>q→
    • qa 开始录制
    • Yp 复制行
    • <C-a> 增加1
    • q 停止录制
    • @a→ 在1 下面写2
    • @@→ 在2 下面写3
    • 100@@ 会创建新的100行,并把数据增加到103
http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/macros.gif

查看当前文件是什么类型了

:set filetype

Vim升华之树形目录插件NERDTree安装图解

  1. Vim升华之树形目录插件NERDTree安装图解

http://www.linuxidc.com/Linux/2013-06/86048.htm

  1. 每天一个vim插件–vim-multiple-cursors (foocoder.com)

  2. Vim常用插件——前端开发工具系列

http://web.jobbole.com/83226/

  1. vi/vim使用进阶: 开启文件类型检测

http://easwy.com/blog/archives/advanced-vim-skills-filetype-on/

  1. plugin、autoload、ftplugin有什么区别

http://www.cnblogs.com/chris-cp/p/4581593.html

  1. filetype---- 文件类型检测

http://liuzhijun.iteye.com/blog/1846123

project

孤独症患者
白衬衫花格子
一
她说,她见过夏天的雪、看过逆流的河、走过倒垂天际的彩虹,和透明的人做爱。
她说,她听着一首叫做《Riverside 》的歌的时候爱上了我。
我听完后告诉她,这首歌很孤独。
她说,她就是因为孤独才爱上我。

她没有跟我道别。
我静静的坐在倒垂的彩虹上,看着逆流的河上那个小姑娘在唱歌。
河里还漂浮着昨晚未曾融化的雪。
我将手伸进自己的体内,却触摸不到自己的心跳。

二
她跟他说,我爱你。
她眼神望的却是他的后面。

她和他在餐桌相对而坐。
她脸带笑意的看着他的背后。
他转过头,空无人影。

他拥着她睡着。
她的手在他的背后,
虚空中,她好像握住了另一个人的手。

三
她做了一个光怪陆离的梦。
她梦见她生活在空无一人的城市里面。
在偌大的餐厅里面一个人吃饭;
在空无一人的街道上独自逛街;
在漆黑的夜晚里抱着被子睡着。

她戴上眼镜,穿上高跟鞋,塞着耳机出门。
她瞥见的脸每一张都是陌生的。
她见过的每一个人都是匆匆路过。
她忽然间觉得,生活和昨晚的梦没有什么不同。

四
他右手捧着玫瑰,
生日快乐,亲爱的;
他单膝下跪,左手拿着钻戒,
嫁给我吧,宝贝。

他替她梳头,替她画眉,替她穿上婚纱。
他挽着她的手,登上教堂楼顶。
阳光很美,美的像血。
他的瞳孔最后印着她支离破碎的脸盘。