wenbao与vim

推荐博客:http://easwy.com/blog/archives/advanced-vim-skills-basic-move-method/

      http://blog.csdn.net/xiaolong2w/article/details/8224839

vim是非常有逼格的编辑器,里面有非常强悍的功能。。。。学习中!!!!!!!!!!!!

常用指令

@基本按键

hjkl分别表示左下上右

v可视化(对字符操作)

V可视化(对行操作)

@清空整个文件:

    (esc)首先执行  gg 这里是跳至文件首行 再执行:dG 这样就清空了整个文件! 还有一种方法就要退出VIM,然后使用echo >> file ,这样也能快速清空文件内容,当然你也可以删除了这个文件再新建一个就是了。

@跳转

gg跳到文件顶端,G跳到文件末尾

0(数字0)跳到当前光标行首,$跳到当前光标行尾

10j跳到当前光标的下10行,hkl同

50%跳到文件的50%处

HML分别跳转到当前窗口的上中下

zt,zz,zb分别对应光标所在行跳转到窗口的上中下位置

ctrl+b向上移动一页

ctrl+f向下移动一页

@复制整个文件(前提是配置好)

    (esc)ggVG全选命令,y复制,(p是粘贴)

@撤销操作

    (esc)u

@删除

    (esc) 

      x(删除当前光标下的字符)  dw(删除光标之后的单词剩余部分)  d$(删除光标之后的该行剩余部分)  dd(删除当前行)

      c (功能和d相同,区别在于完成删除操作后进入INSERT MODE)  cc(也是删除当前行,然后进入INSERT MODE)

 @移动

    (esc)

      :n1,n2 m n3     移动n1-n2行(包括n1,n2)到n3行之下;

      :n1,n2 co n3    复制n1-n2行(包括n1,n2)到n3行之下;

      :n1,n2 d          删除n1-n2行(包括n1,n2)行;

 全局替换

:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1

:g/str1/s//str2/g 功能同上

 @查找

/word

要查找的word,n查看当前world的下一个,N查看当前word的上一个

@vimdiff

https://jingyan.baidu.com/article/ae97a646da05debbfd461d33.html

vimdiff file1 file2(垂直打开)

vimdiff -o file1 file2(水平打开)

]c表示的是跳到下一个不同处

[c表示的是跳到上一个不同处

ctrl + w + w 左右切换 或者上下切换

wqa!保存所有文件并退出:wqa!

qa!不保存所有文件并退出:qa!

 @vim配置

gedit ~/.vimrc

贴一个vimrc

" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below.  If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
  syntax on
endif

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
"  au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif
"endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
"  filetype plugin indent on
"endif

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd        " Show (partial) command in status line.
"set showmatch        " Show matching brackets.
"set ignorecase        " Do case insensitive matching
"set smartcase        " Do smart case matching
"set incsearch        " Incremental search
"set autowrite        " Automatically save before commands like :next and :make
"set hidden            " Hide buffers when they are abandoned
"set mouse=a        " Enable mouse usage (all modes)
set  autoindent
set  smartindent
"set  cindent
set  nu
set  tabstop=4
set  shiftwidth=4
set  backspace=2
set  cursorline
set  clipboard=unnamedplus
"hi CursorLine cterm=NONE ctermfg=blue
hi String     ctermfg=white
hi Number     ctermfg=white
hi Constant   ctermfg=white
hi Comment    ctermfg=yellow


inoremap (       ()<ESC>i
inoremap {<CR>   {<CR>}<ESC>kA<CR>
inoremap [       []<ESC>i
inoremap '       ''<ESC>i
inoremap "       ""<ESC>i

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif
  1 "=========================================================================
  2 " DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console
  3 "
  4 " Last Change: 2010年08月02日 15时13分 
  5 "
  6 " Version: 1.80
  7 "
  8 "=========================================================================
  9 
 10 set nocompatible " 关闭 vi 兼容模式
 11 syntax on " 自动语法高亮
 12 colorscheme molokai " 设定配色方案
 13 set number " 显示行号
 14 set cursorline " 突出显示当前行
 15 set ruler " 打开状态栏标尺
 16 set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
 17 set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
 18 set tabstop=4 " 设定 tab 长度为 4
 19 set nobackup " 覆盖文件时不备份
 20 set autochdir " 自动切换当前目录为当前文件所在的目录
 21 filetype plugin indent on " 开启插件
 22 set backupcopy=yes " 设置备份时的行为为覆盖
 23 set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
 24 set nowrapscan " 禁止在搜索到文件两端时重新搜索
 25 set incsearch " 输入搜索内容时就显示搜索结果
 26 set hlsearch " 搜索时高亮显示被找到的文本
 27 set noerrorbells " 关闭错误信息响铃
 28 set novisualbell " 关闭使用可视响铃代替呼叫
 29 set t_vb= " 置空错误铃声的终端代码
 30 " set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
 31 " set matchtime=2 " 短暂跳转到匹配括号的时间
 32 set magic " 设置魔术
 33 set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
 34 set guioptions-=T " 隐藏工具栏
 35 set guioptions-=m " 隐藏菜单栏
 36 set smartindent " 开启新行时使用智能自动缩进
 37 set backspace=indent,eol,start
 38 " 不设定在插入状态无法用退格键和 Delete 键删除回车符
 39 set cmdheight=1 " 设定命令行的行数为 1
 40 set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
 41 set statusline= %<%F[%1*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%) 
 42 " 设置在状态行显示的信息
 43 set foldenable " 开始折叠
 44 set foldmethod=syntax " 设置语法折叠
 45 set foldcolumn=0 " 设置折叠区域的宽度
 46 setlocal foldlevel=1 " 设置折叠层数为
 47 " set foldclose=all " 设置为自动关闭折叠 
 48 " nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
 49 " 用空格键来开关折叠
 50 
 51 
 52 " return OS type, eg: windows, or linux, mac, et.st..
 53 function! MySys()
 54 if has("win16") || has("win32") || has("win64") || has("win95")
 55 return "windows"
 56 elseif has("unix")
 57 return "linux"
 58 endif
 59 endfunction
 60 
 61 " 用户目录变量$VIMFILES
 62 if MySys() == "windows"
 63 let $VIMFILES = $VIM.'/vimfiles'
 64 elseif MySys() == "linux"
 65 let $VIMFILES = $HOME.'/.vim'
 66 endif
 67 
 68 " 设定doc文档目录
 69 let helptags=$VIMFILES.'/doc'
 70 
 71 " 设置字体 以及中文支持
 72 if has("win32")
 73 set guifont=Inconsolata:h12:cANSI
 74 endif
 75 
 76 " 配置多语言环境
 77 if has("multi_byte")
 78 " UTF-8 编码
 79 set encoding=utf-8
 80 set termencoding=utf-8
 81 set formatoptions+=mM
 82 set fencs=utf-8,gbk
 83 
 84 if v:lang =~? '^(zh)|(ja)|(ko)'
 85 set ambiwidth=double
 86 endif
 87 
 88 if has("win32")
 89 source $VIMRUNTIME/delmenu.vim
 90 source $VIMRUNTIME/menu.vim
 91 language messages zh_CN.utf-8
 92 endif
 93 else
 94 echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
 95 endif
 96 
 97 " Buffers操作快捷方式!
 98 nnoremap <C-RETURN> :bnext<CR>
 99 nnoremap <C-S-RETURN> :bprevious<CR>
100 
101 " Tab操作快捷方式!
102 nnoremap <C-TAB> :tabnext<CR>
103 nnoremap <C-S-TAB> :tabprev<CR>
104 
105 "关于tab的快捷键
106 " map tn :tabnext<cr>
107 " map tp :tabprevious<cr>
108 " map td :tabnew .<cr>
109 " map te :tabedit
110 " map tc :tabclose<cr>
111 
112 "窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动
113 "光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的
114 "时候会变得非常方便.
115 nnoremap <C-h> <C-w>h
116 nnoremap <C-j> <C-w>j
117 nnoremap <C-k> <C-w>k
118 nnoremap <C-l> <C-w>l
119 
120 "一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用)
121 nnoremap <leader>1 :set filetype=xhtml<CR>
122 nnoremap <leader>2 :set filetype=css<CR>
123 nnoremap <leader>3 :set filetype=javascript<CR>
124 nnoremap <leader>4 :set filetype=php<CR>
125 
126 " set fileformats=unix,dos,mac
127 " nmap <leader>fd :se fileformat=dos<CR>
128 " nmap <leader>fu :se fileformat=unix<CR>
129 
130 " use Ctrl+[l|n|p|cc] to list|next|previous|jump to count the result
131 " map <C-x>l <ESC>:cl<CR>
132 " map <C-x>n <ESC>:cn<CR>
133 " map <C-x>p <ESC>:cp<CR>
134 " map <C-x>c <ESC>:cc<CR>
135 
136 
137 " 让 Tohtml 产生有 CSS 语法的 html
138 " syntax/2html.vim,可以用:runtime! syntax/2html.vim
139 let html_use_css=1
140 
141 " Python 文件的一般设置,比如不要 tab 等
142 autocmd FileType python set tabstop=4 shiftwidth=4 expandtab
143 autocmd FileType python map <F12> :!python %<CR>
144 
145 " 选中状态下 Ctrl+c 复制
146 vmap <C-c> "+y
147 
148 " 打开javascript折叠
149 let b:javascript_fold=1
150 " 打开javascript对dom、html和css的支持
151 let javascript_enable_domhtmlcss=1
152 " 设置字典 ~/.vim/dict/文件的路径
153 autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict
154 autocmd filetype css set dictionary=$VIMFILES/dict/css.dict
155 autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
156 
157 "-----------------------------------------------------------------
158 " plugin - bufexplorer.vim Buffers切换
159 " e 全屏方式查看全部打开的文件列表
160 " v 左右方式查看 s 上下方式查看
161 "-----------------------------------------------------------------
162 
163 
164 "-----------------------------------------------------------------
165 " plugin - taglist.vim 查看函数列表,需要ctags程序
166 " F4 打开隐藏taglist窗口
167 "-----------------------------------------------------------------
168 if MySys() == "windows" " 设定windows系统中ctags程序的位置
169 let Tlist_Ctags_Cmd = '"'.$VIMRUNTIME.'/ctags.exe"'
170 elseif MySys() == "linux" " 设定windows系统中ctags程序的位置
171 let Tlist_Ctags_Cmd = '/usr/bin/ctags'
172 endif
173 nnoremap <silent><F4> :TlistToggle<CR>
174 let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的
175 let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
176 let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
177 let Tlist_File_Fold_Auto_Close=1 " 自动折叠当前非编辑文件的方法列表
178 let Tlist_Auto_Open = 0
179 let Tlist_Auto_Update = 1
180 let Tlist_Hightlight_Tag_On_BufEnter = 1
181 let Tlist_Enable_Fold_Column = 0
182 let Tlist_Process_File_Always = 1
183 let Tlist_Display_Prototype = 0
184 let Tlist_Compact_Format = 1
185 
186 
187 "-----------------------------------------------------------------
188 " plugin - mark.vim 给各种tags标记不同的颜色,便于观看调式的插件。
189 " m mark or unmark the word under (or before) the cursor
190 " 
 manually input a regular expression. 用于搜索.
191 " 
 clear this mark (i.e. the mark under the cursor), or clear all highlighted marks .
192 " * 当前MarkWord的下一个 # 当前MarkWord的上一个
193 " / 所有MarkWords的下一个 ? 所有MarkWords的上一个
194 "-----------------------------------------------------------------
195 
196 
197 "-----------------------------------------------------------------
198 " plugin - NERD_tree.vim 以树状方式浏览系统中的文件和目录
199 " :ERDtree 打开NERD_tree :NERDtreeClose 关闭NERD_tree
200 " o 打开关闭文件或者目录 t 在标签页中打开
201 " T 在后台标签页中打开 ! 执行此文件
202 " p 到上层目录 P 到根目录
203 " K 到第一个节点 J 到最后一个节点
204 " u 打开上层目录 m 显示文件系统菜单(添加、删除、移动操作)
205 " r 递归刷新当前目录 R 递归刷新当前根目录
206 "-----------------------------------------------------------------
207 " F3 NERDTree 切换
208 map <F3> :NERDTreeToggle<CR>
209 imap <F3> <ESC>:NERDTreeToggle<CR>
210 
211 
212 "-----------------------------------------------------------------
213 " plugin - NERD_commenter.vim 注释代码用的,
214 " [count],cc 光标以下count行逐行添加注释(7,cc)
215 " [count],cu 光标以下count行逐行取消注释(7,cu)
216 " [count],cm 光标以下count行尝试添加块注释(7,cm)
217 " ,cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
218 " 注:count参数可选,无则默认为选中行或当前行
219 "-----------------------------------------------------------------
220 let NERDSpaceDelims=1 " 让注释符与语句之间留一个空格
221 let NERDCompactSexyComs=1 " 多行注释时样子更好看
222 
223 
224 "-----------------------------------------------------------------
225 " plugin - DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释
226 "-----------------------------------------------------------------
227 let g:DoxygenToolkit_authorName="Asins - asinsimple AT gmail DOT com"
228 let g:DoxygenToolkit_briefTag_funcName="yes"
229 map <leader>da :DoxAuthor<CR>
230 map <leader>df :Dox<CR>
231 map <leader>db :DoxBlock<CR>
232 map <leader>dc a /* */<LEFT><LEFT><LEFT>
233 
234 
235 "-----------------------------------------------------------------
236 " plugin – ZenCoding.vim 很酷的插件,HTML代码生成
237 " 插件最新版:http://github.com/mattn/zencoding-vim
238 " 常用命令可看:http://nootn.com/blog/Tool/23/
239 "-----------------------------------------------------------------
240 
241 
242 "-----------------------------------------------------------------
243 " plugin – checksyntax.vim JavaScript常见语法错误检查
244 " 默认快捷方式为 F5
245 "-----------------------------------------------------------------
246 let g:checksyntax_auto = 0 " 不自动检查
247 
248 
249 "-----------------------------------------------------------------
250 " plugin - NeoComplCache.vim 自动补全插件
251 "-----------------------------------------------------------------
252 let g:AutoComplPop_NotEnableAtStartup = 1
253 let g:NeoComplCache_EnableAtStartup = 1
254 let g:NeoComplCache_SmartCase = 1
255 let g:NeoComplCache_TagsAutoUpdate = 1
256 let g:NeoComplCache_EnableInfo = 1
257 let g:NeoComplCache_EnableCamelCaseCompletion = 1
258 let g:NeoComplCache_MinSyntaxLength = 3
259 let g:NeoComplCache_EnableSkipCompletion = 1
260 let g:NeoComplCache_SkipInputTime = '0.5'
261 let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets'
262 " <TAB> completion.
263 inoremap <expr><TAB> pumvisible() ? "<C-n>" : "<TAB>"
264 " snippets expand key
265 imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
266 smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand)
267 
268 
269 "-----------------------------------------------------------------
270 " plugin - matchit.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
271 " % 正向匹配 g% 反向匹配
272 " [% 定位块首 ]% 定位块尾
273 "-----------------------------------------------------------------
274 
275 
276 "-----------------------------------------------------------------
277 " plugin - vcscommand.vim 对%命令进行扩展使得能在嵌套标签和语句之间跳转
278 " SVN/git管理工具
279 "-----------------------------------------------------------------
280 
281 
282 "-----------------------------------------------------------------
283 " plugin – a.vim
284 "-----------------------------------------------------------------
  1 """""""""""""""""""
  2 " 显示相关 
  3 """""""""""""""""""
  4 "set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 
  5 "winpos 5 5 " 设定窗口位置 
  6 "set lines=40 columns=155 " 设定窗口大小 
  7 "set nu " 显示行号 
  8 set go= " 不要图形按钮 
  9 "color asmanian2 " 设置背景主题 
 10 set guifont=Courier_New:h10:cANSI " 设置字体 
 11 "syntax on " 语法高亮 
 12 autocmd InsertLeave * se nocul " 用浅色高亮当前行 
 13 autocmd InsertEnter * se cul " 用浅色高亮当前行 
 14 "set ruler " 显示标尺 
 15 set showcmd " 输入的命令显示出来,看的清楚些 
 16 "set cmdheight=1 " 命令行(在状态行下)的高度,设置为1 
 17 "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议) 
 18 "set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 
 19 set novisualbell " 不要闪烁(不明白) 
 20 set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")} "状态行显示的内容 
 21 set laststatus=1 " 启动显示状态行(1),总是显示状态行(2) 
 22 set foldenable " 允许折叠 
 23 set foldmethod=manual " 手动折叠 
 24 "set background=dark "背景使用黑色 
 25 set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 
 26 " 显示中文帮助
 27 if version >= 603
 28 set helplang=cn
 29 set encoding=utf-8
 30 endif
 31 " 设置配色方案
 32 "colorscheme murphy
 33 "字体 
 34 "if (has("gui_running")) 
 35 " set guifont=Bitstream Vera Sans Mono 10 
 36 "endif
 37 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
 38 set termencoding=utf-8
 39 set encoding=utf-8
 40 set fileencodings=ucs-bom,utf-8,cp936
 41 set fileencoding=utf-8
 42 """""""""""""""""""""""""
 43 """""新文件标题""""""""""
 44 "新建.c,.h,.sh,.java文件,自动插入文件头 
 45 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
 46 ""定义函数SetTitle,自动插入文件头 
 47 func SetTitle() 
 48 "如果文件类型为.sh文件 
 49 if &filetype == 'sh' 
 50 call setline(1,"#########################################################################") 
 51 call append(line("."), "# File Name: ".expand("%")) 
 52 call append(line(".")+1, "# Author: test") 
 53 call append(line(".")+2, "# mail: <a href="mailto:test@jbxue.com">test@jbxue.com</a>") 
 54 call append(line(".")+3, "# Created Time: ".strftime("%c")) 
 55 call append(line(".")+4, "#########################################################################") 
 56 call append(line(".")+5, "#!/bin/bash") 
 57 call append(line(".")+6, "") 
 58 else 
 59 call setline(1, "/*************************************************************************") 
 60 call append(line("."), " > File Name: ".expand("%")) 
 61 call append(line(".")+1, " > Author: test") 
 62 call append(line(".")+2, " > Mail: <a href="mailto:test@jbxue.com">test@jbxue.com</a> ") 
 63 call append(line(".")+3, " > Created Time: ".strftime("%c")) 
 64 call append(line(".")+4, " ************************************************************************/") 
 65 call append(line(".")+5, "")
 66 endif
 67 if &filetype == 'cpp'
 68 call append(line(".")+6, "#include<iostream>")
 69 call append(line(".")+7, "using namespace std;")
 70 call append(line(".")+8, "")
 71 endif
 72 if &filetype == 'c'
 73 call append(line(".")+6, "#include<stdio.h>")
 74 call append(line(".")+7, "")
 75 endif
 76 "新建文件后,自动定位到文件末尾
 77 autocmd BufNewFile * normal G
 78 endfunc 
 79 """""""""""""""""""""""""""""""
 80 "键盘命令
 81 """""""""""""""""""""""""""""""
 82 nmap <leader>w :w!<cr>
 83 nmap <leader>f :find<cr>
 84 " 映射全选+复制 ctrl+a
 85 map <C-A> ggVGY
 86 map! <C-A> <Esc>ggVGY
 87 map <F12> gg=G
 88 " 选中状态下 Ctrl+c 复制
 89 vmap <C-c> "+y
 90 "去空行 
 91 nnoremap <F2> :g/^s*$/d<CR> 
 92 "比较文件 
 93 nnoremap <C-F2> :vert diffsplit 
 94 "新建标签 
 95 map <M-F2> :tabnew<CR> 
 96 "列出当前目录文件 
 97 map <F3> :tabnew .<CR> 
 98 "打开树状文件目录 
 99 map <C-F3> e 
100 "C,C++ 按F5编译运行
101 map <F5> :call CompileRunGcc()<CR>
102 func! CompileRunGcc()
103 exec "w"
104 if &filetype == 'c'
105 exec "!g++ % -o %<"
106 exec "! ./%<"
107 elseif &filetype == 'cpp'
108 exec "!g++ % -o %<"
109 exec "! ./%<"
110 elseif &filetype == 'java' 
111 exec "!javac %" 
112 exec "!java %<"
113 elseif &filetype == 'sh'
114 :!./%
115 endif
116 endfunc
117 "C,C++的调试
118 map <F8> :call Rungdb()<CR>
119 func! Rungdb()
120 exec "w"
121 exec "!g++ % -g -o %<"
122 exec "!gdb ./%<"
123 endfunc
124 """"""""""""""""""""""""
125 ""实用设置
126 """"""""""""""""""""""""
127 " 设置当文件被改动时自动载入
128 set autoread
129 " quickfix模式
130 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
131 "代码补全 
132 set completeopt=preview,menu 
133 "允许插件 
134 filetype plugin on
135 "共享剪贴板 
136 set clipboard+=unnamed 
137 "从不备份 
138 set nobackup
139 "make 运行
140 :set makeprg=g++ -Wall  %
141 "自动保存
142 set autowrite
143 set ruler " 打开状态栏标尺
144 set cursorline " 突出显示当前行
145 set magic " 设置魔术
146 set guioptions-=T " 隐藏工具栏
147 set guioptions-=m " 隐藏菜单栏
148 "set statusline= %<%F[%1*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%)
149 " 设置在状态行显示的信息
150 set foldcolumn=0
151 set foldmethod=indent 
152 set foldlevel=3 
153 set foldenable " 开始折叠
154 " 不要使用vi的键盘模式,而是vim自己的
155 set nocompatible
156 " 语法高亮
157 set syntax=on
158 " 去掉输入错误的提示声音
159 set noeb
160 " 在处理未保存或只读文件的时候,弹出确认
161 set confirm
162 " 自动缩进
163 set autoindent
164 set cindent
165 " Tab键的宽度
166 set tabstop=4
167 " 统一缩进为4
168 set softtabstop=4
169 set shiftwidth=4
170 " 不要用空格代替制表符
171 set noexpandtab
172 " 在行和段开始处使用制表符
173 set smarttab
174 " 显示行号
175 set number
176 " 历史记录数
177 set history=1000
178 "禁止生成临时文件
179 set nobackup
180 set noswapfile
181 "搜索忽略大小写
182 set ignorecase
183 "搜索逐字符高亮
184 set hlsearch
185 set incsearch
186 "行内替换
187 set gdefault
188 "编码设置
189 set enc=utf-8
190 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
191 "语言设置
192 set langmenu=zh_CN.UTF-8
193 set helplang=cn
194 " 我的状态行显示的内容(包括文件类型和解码)
195 "set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}
196 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
197 " 总是显示状态行
198 set laststatus=2
199 " 命令行(在状态行下)的高度,默认为1,这里是2
200 set cmdheight=2
201 " 侦测文件类型
202 filetype on
203 " 载入文件类型插件
204 filetype plugin on
205 " 为特定文件类型载入相关缩进文件
206 filetype indent on
207 " 保存全局变量
208 set viminfo+=!
209 " 带有如下符号的单词不要被换行分割
210 set iskeyword+=_,$,@,%,#,-
211 " 字符间插入的像素行数目
212 set linespace=0
213 " 增强模式中的命令行自动完成操作
214 set wildmenu
215 " 使回格键(backspace)正常处理indent, eol, start等
216 set backspace=2
217 " 允许backspace和光标键跨越行边界
218 set whichwrap+=<,>,h,l
219 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
220 set mouse=a
221 set selection=exclusive
222 set selectmode=mouse,key
223 " 通过使用: commands命令,告诉我们文件的哪一行被改变过
224 set report=0
225 " 在被分割的窗口间显示空白,便于阅读
226 set fillchars=vert: ,stl: ,stlnc:
227 " 高亮显示匹配的括号
228 set showmatch
229 " 匹配括号高亮的时间(单位是十分之一秒)
230 set matchtime=1
231 " 光标移动到buffer的顶部和底部时保持3行距离
232 set scrolloff=3
233 " 为C程序提供自动缩进
234 set smartindent
235 " 高亮显示普通txt文件(需要txt.vim脚本)
236 au BufRead,BufNewFile * setfiletype txt
237 "自动补全
238 :inoremap ( ()<ESC>i
239 :inoremap ) <c-r>=ClosePair(')')<CR>
240 :inoremap { {<CR>}<ESC>O
241 :inoremap } <c-r>=ClosePair('}')<CR>
242 :inoremap [ []<ESC>i
243 :inoremap ] <c-r>=ClosePair(']')<CR>
244 :inoremap " ""<ESC>i
245 :inoremap ' ''<ESC>i
246 function! ClosePair(char)
247 if getline('.')[col('.') - 1] == a:char
248 return "<Right>"
249 else
250 return a:char
251 endif
252 endfunction
253 filetype plugin indent on 
254 "打开文件类型检测, 加了这句才可以用智能补全
255 set completeopt=longest,menu
256 """"""""""""""""""""""""""""""""
257 " CTags的设定 
258 """"""""""""""""""""""""""""""""
259 let Tlist_Sort_Type = "name" " 按照名称排序 
260 let Tlist_Use_Right_Window = 1 " 在右侧显示窗口 
261 let Tlist_Compart_Format = 1 " 压缩方式 
262 let Tlist_Exist_OnlyWindow = 1 " 如果只有一个buffer,kill窗口也kill掉buffer 
263 let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags 
264 let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树 
265 autocmd FileType java set tags+=D:	oolsjava	ags 
266 "autocmd FileType h,cpp,cc,c set tags+=D:	oolscpp	ags 
267 "let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的
268 "设置tags 
269 set tags=tags 
270 "set autochdir
271 """""""""""""""""""""""""
272 "其他东东
273 """""""""""""""""""""""""
274 "默认打开Taglist 
275 let Tlist_Auto_Open=1 
276 """""""""""""""""""""""""""""" 
277 " Tag list (ctags) 
278 """""""""""""""""""""""""""""""" 
279 let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
280 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
281 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim 
282 let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
283 " minibufexpl插件的一般设置
284 let g:miniBufExplMapWindowNavVim = 1
285 let g:miniBufExplMapWindowNavArrows = 1
286 let g:miniBufExplMapCTabSwitchBufs = 1
287 let g:miniBufExplModSelTarget = 1

@   小艾

 1 " All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
 2 " the call to :runtime you can find below.  If you wish to change any of those
 3 " settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
 4 " will be overwritten everytime an upgrade of the vim packages is performed.
 5 " It is recommended to make changes after sourcing debian.vim since it alters
 6 " the value of the 'compatible' option.
 7 
 8 " This line should not be removed as it ensures that various options are
 9 " properly set to work with the Vim-related packages available in Debian.
10 runtime! debian.vim
11 
12 " Uncomment the next line to make Vim more Vi-compatible
13 " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
14 " options, so any other options should be set AFTER setting 'compatible'.
15 "set compatible
16 
17 " Vim5 and later versions support syntax highlighting. Uncommenting the next
18 " line enables syntax highlighting by default.
19 if has("syntax")
20   syntax on
21 endif
22 
23 " If using a dark background within the editing area and syntax highlighting
24 " turn on this option as well
25 "set background=dark
26 
27 " Uncomment the following to have Vim jump to the last position when
28 " reopening a file
29 "if has("autocmd")
30 "  au BufReadPost * if line("'"") > 1 && line("'"") <= line("$") | exe "normal! g'"" | endif
31 "endif
32 
33 " Uncomment the following to have Vim load indentation rules and plugins
34 " according to the detected filetype.
35 "if has("autocmd")
36 "  filetype plugin indent on
37 "endif
38 
39 " The following are commented out as they cause vim to behave a lot
40 " differently from regular Vi. They are highly recommended though.
41 "set showcmd        " Show (partial) command in status line.
42 "set showmatch        " Show matching brackets.
43 "set ignorecase        " Do case insensitive matching
44 "set smartcase        " Do smart case matching
45 "set incsearch        " Incremental search
46 "set autowrite        " Automatically save before commands like :next and :make
47 "set hidden        " Hide buffers when they are abandoned
48 "set mouse=a        " Enable mouse usage (all modes)
49 set  nu
50 set  tabstop=4
51 set  shiftwidth=4
52 set  autoindent
53 set  smartindent
54 set  cindent
55 set  cursorline
56 set  clipboard=unnamedplus
57 hi CursorLine cterm=NONE ctermfg=yellow
58 highlight LineNr ctermfg=white
59 
60 hi String     ctermfg=white
61 hi Number     ctermfg=white
62 hi Constant   ctermfg=white
63 hi Comment    ctermfg=yellow
64 
65 inoremap (       ()<ESC>i
66 inoremap {<CR>   {<CR>}<ESC>kA<CR>
67 inoremap [       []<ESC>i
68 inoremap '       ''<ESC>i
69 inoremap "       ""<ESC>i
70 
71 " Source a global configuration file if available
72 if filereadable("/etc/vim/vimrc.local")
73   source /etc/vim/vimrc.local
74 endif

下载: https://pan.baidu.com/s/1nvTjAnZ

@  tmux

  • C-b ? 显示快捷键帮助
  • C-b C-o 调换窗口位置,类似与vim 里的C-w
  • C-b 空格键 采用下一个内置布局
  • C-b ! 把当前窗口变为新窗口
  • C-b " 模向分隔窗口
  • C-b % 纵向分隔窗口
  • C-b q 显示分隔窗口的编号
  • C-b o 跳到下一个分隔窗口
  • C-b 上下键 上一个及下一个分隔窗口
  • C-b C-方向键 调整分隔窗口大小
  • C-b c 创建新窗口
  • C-b 0~9 选择几号窗口
  • C-b c 创建新窗口
  • C-b n 选择下一个窗口
  • C-b l 切换到最后使用的窗口
  • C-b p 选择前一个窗口
  • C-b w 以菜单方式显示及选择窗口
  • C-b t 显示时钟
  • C-b ; 切换到最后一个使用的面板
  • C-b x 关闭面板
  • C-b & 关闭窗口
  • C-b s 以菜单方式显示和选择会话
  • C-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入 到指定的会话

只有不断学习才能进步!

原文地址:https://www.cnblogs.com/wenbao/p/5831510.html