从此使用vim代替si看代码

以前是在windows下的开发环境,最好用的看代码写代码工具当然是非source insight莫属了,所以一直以来都是用si写代码,分析代码。
后面转入linux开发环境后一直也是用si(通过wine安装)但是很不稳定,经常会出各种问题死掉。所以决定切换用vim来代替si,vim号称程序员最好用的代码编辑器,再说了,作为一个混迹多年江湖的程序猿,不去好好感受下这么优秀工具,岂不是暴殄天物?

网上找了很多资料,终于搭建了自己的 vim “IDE”,用了一段时间了,感觉还不错 ~

整合的主要功能有:

1、各自目录树、符号列表、搜索窗口切换定义;

2、ctags + cscope支持,而且 各个打开的vim工程独立不干扰,存放到~/.ctags/ 目录下;

3、保存当前vim配置,下次打开vim还是原来的配置,方便使用,而且最关键的是各个vim工程独立,同样保存在~/.ctags/目录下;

4、模糊、全局搜索使用外部ag搜索引擎,速度很快;

5、各种常用必备插件已配置;

6、其它详细部分见vimrc配置吧;


下面贴出来分享下。


整合好的地址:

git clone https://github.com/guomingyi/vim-warper.git


相关快捷键配置:

# Install
########################################
cp -a .vim ~/.vim
cp -a .vimrc ~/.vimrc

# Ctags:
cd ~/.vim/depends/
unzip ctags-5.8.zip
cd ctags-5.8
./configure
make
sudo make install

# Cscope:
参考Ctags步骤.
##################[快捷键定义]#################
# 窗口类:
f2    鼠标使能切换
\f2   行号显示切换
f3    tagbarlist
\f3   NERDTree
f4    Ctrlp,文件模糊搜索,也可按ctrl+p打开,按esc退出
\f4   MRU,文件打开历史记录,可保存
f5    make tags,用于查看代码进入函数跳转,支持多目录加载
\f5   make cscope,ctags的升级,功能更强大,暂不支持多目录加载
f6    Buf exploler,当前文件打开记录缓存
\f6   miniBufExploler,跟上一个类同
\f7   themes switch

# 文件跳转:
1     跳转到上一个文件
2     跳转到下一个文件
\1    关闭当前文件
3     quickfix列表搜索文件条状到下一个
4     quickfix跳转到上一个

# 更新插件:
\3    更新插件

# 退出:
\q    退出当前窗口
\qa   不保存seesion.vim退出全部
\qs   保存session.vim退出全部
F2    同\qs
\w    :w

# ACK搜索相关:
\s    Ack 搜索,先按下\s,再输入需要搜索的字符,回车
\f    AckFile搜索,同上

# ag 搜索
sudo apt-get install silversearcher-ag

# Cscope相关:
cc  搜索该函数调用的函数
cd  搜索调用该函数的函数
cs  搜索函数
cf  搜索文件
ct  搜索字符串


# 特殊命令:
# 有时候vim的历史记录会有混乱,这个时候有两种方式还原:
1> rm -rf ~./ctags/
2> vim clean


打开后默认界面:



按 F3 切换显示tagbar ,\F3 切换显示nerdtree, F4 弹出ctrlp模糊搜索



按\F4 切换ctrlp-funky,模糊搜索当前文件函数,ctrlp搜索使用外部ag搜索引擎





buffer 浏览器,按F6切换



F5 执行make tags,tags的目录做了重定向,每个新打开的vim工程互不干扰。



make cscope,和ctags类同



ag搜索符号




vimrc 全配置:

  1 
  2 "##################################################################[Plugin manager]
  3 " http://www.cnblogs.com/songfy/p/5635757.html 
  4 set rtp+=~/.vim/bundle/Vundle.vim
  5 
  6 call vundle#begin()
  7 
  8 Plugin 'VundleVim/Vundle.vim'
  9 Plugin 'tpope/vim-fugitive'
 10 Plugin 'vim-scripts/winmanager'
 11 Plugin 'rstacruz/sparkup',{'rtp': 'vim/'}
 12 Plugin 'kien/ctrlp.vim'
 13 Plugin 'wincent/command-t'
 14 Plugin 'scrooloose/nerdtree'
 15 Plugin 'majutsushi/tagbar'
 16 Plugin 'jiangmiao/auto-pairs'
 17 Plugin 'minibufexpl.vim'
 18 Plugin 'jlanzarotta/bufexplorer'
 19 Plugin 'taglist.vim'
 20 Plugin 'scrooloose/nerdcommenter'
 21 Plugin 'godlygeek/tabular'
 22 Plugin 'plasticboy/vim-markdown'
 23 Plugin 'portante/cscope'
 24 Plugin 'tomasr/molokai'
 25 Plugin 'yegappan/mru'
 26 Plugin 'rking/ag.vim'
 27 Plugin 'altercation/vim-colors-solarized'
 28 Plugin 'tacahiroy/ctrlp-funky'
 29 Plugin 'Lokaltog/vim-distinguished'
 30 
 31 "Plugin 'Valloric/YouCompleteMe' "NEED VIM8.0+ & PYTHON3.5+ support.
 32 "Plugin 'vim/vim' "vim8.0+
 33 
 34 call vundle#end()
 35 
 36 filetype plugin indent on
 37 "##################################################################[default value set]
 38 modelines=0
 39 backspace=2 "设置更好的删除
 40 syntax on "语法高亮
 41 "set noswapfile
 42 "autocmd InsertLeave * se nocul "用浅色高亮当前行
 43 "autocmd InsertEnter * se cul
 44 cul
 45 paste
 46 smartindent "智能对齐
 47 autoindent "自动对齐
 48 confirm "在处理未保存或只读文件的时候,弹出确认框
 49 tabstop=4 "tab键的宽度
 50 softtabstop=4
 51 shiftwidth=4 "统一缩进为4
 52 expandtab "不要用空格替代制表符
 53 
 54 history=50  "历史纪录数
 55 "set nohlsearch
 56 hlsearch
 57 incsearch "搜素高亮,搜索逐渐高亮
 58 
 59 gdefault "行内替换
 60 encoding=utf-8
 61 fileencodings=utf-8,ucs-bom"编码设置
 62 
 63 guifont=Menlo:h16:cANSI "设置字体
 64 langmenu=zn_CN.UTF-8
 65 helplang=cn  "语言设置
 66 
 67 ruler "在编辑过程中,在右下角显示光标位置的状态行
 68 laststatus=1  "总是显示状态行
 69 showcmd "在状态行显示目前所执行的命令,未完成的指令片段也会显示出来
 70 scrolloff=3 "光标移动到buffer的顶部和底部时保持3行的距离
 71 "set showmatch "高亮显示对应的括号
 72 matchtime=5 "对应括号高亮时间(单位是十分之一秒)
 73 autowrite "在切换buffer时自动保存当前文件
 74 wildmenu  "增强模式中的命令行自动完成操作
 75 linespace=2 "字符间插入的像素行数目
 76 whichwrap=b<,98)">>"开启normal 或visual模式下的backspace键空格键,
 77                           "左右方向键,insert或replace模式下的左方向键,右方向键的跳行功能
 78 
 79 "分为三部分命令:file on,file plugin on,file indent on 
 80                           "分别是自动识别文件类型,用用文件类型脚本,使用缩进定义文件
 81 
 82 foldenable  "允许折叠
 83 cursorline "突出显示当前行
 84 magic  "设置魔术?神马小编
 85 ignorecase "搜索忽略大小写
 86 "filetype on "打开文件类型检测功能
 87 
 88 foldmethod=syntax "使用语法高亮定义代码折叠: zc 折叠,zo 展开
 89 foldlevelstart=99 "打开文件是默认不折叠代码
 90 
 91 "set mouse= "鼠标默认值
 92 "set number "显示行号
 93 
 94 " 自动切换vim工作目录
 95 " set autochdir
 96 " :cd   改变vim的当前工作路径
 97 " :lcd  改变当前窗口的工作路径
 98 " :pwd  查看当前的工作路径
 99 
100 behave mswin
101 
102 if has("autocmd")
103     au BufReadPost * line"'\"") > 1 && <= "$") | exe "normal! g'\"" | endif
104     InsertEnter * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
105     InsertLeave * "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block"
106     VimLeave * "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block"
107 endif
108 "##################################################################[auto exec cmds]
109 "autocmd VimEnter * TagbarToggle "auto start cmd
110 "autocmd VimEnter * WMToggle "auto start cmd
111 "autocmd VimEnter * NERDTree "auto start cmd
112 
113 "default themes
114 autocmd VimEnter * call UserFunctionSwitch(6)
115 
116  " default show line number
117 0)
118 
119 " default enable mouse
120 1)
121 
122 "Open Nerdtree when start vim with no argument
123 argc() == 0 && !exists"s:std_in")
124 "    autocmd VimEnter * WMToggle
125 endif
126 
127 
128 BufNewFile * 52)
129 
130 "##################################################################[ctags]
131 " Press F5 to update make ctags.
132 " cd ~/.ctags
133 " ctags -R ${source_path}
134 "silent !~/.vim/shell/make-ctags.sh
135 let g:pwd = getcwd()
136 g:Newpwd ()
137 "let g:Newpwd = substitute(g:pwd,$HOME,"",128)">)
138 = "~/.ctags/" . substitute(g:Newpwd,"/",135)">"_",135)">"g")
139 
140 settag "set tags=" . . "/tags"
141 "echo settag
142 exec settag
143 
144 g:argc ()
145 g:argv argv)
146 "echo "argv:" g:argv "argc:" g:argc  
147 
148 if (expand(g:argv== "clean"))
149     g:clean = 1
150     echo "clean all session.vim.."
151     silent :!~/.vim/shell/delsh
152 endif
153 
154 "##################################################################[key map]
155 nmap 1 : bp cr>
156 nmap 2 : bn >
157 nmap Leader>1 : bd >
158 >3 : PluginInstall >
159 
160 nmap 3 : cn >
161 nmap 4 : cp >
162 
163 nmap 5 C-]>
164 
165 nmap 6 C-o>
166 
167 nmap 7 C-i>
168 
169 "行号切换
170 map silent> F2> : call UserFunctionSwitch(0) CR>
171 "鼠标切换
172 >> : call UserFunctionSwitch(1) >
173 
174 "neadtree
175 F3> : call UserFunctionSwitch(2) >
176 "tagbarlist
177 > : call UserFunctionSwitch(3) >
178 
179 "mru,file open history record
180 " nmap <silent> <Leader><F4> : call UserFunctionSwitch(4) <CR>
181 "file search
182 F4> : exec "CtrlP ." >
183 > : exec "CtrlPFunky" >
184 nmap fu : execute 'CtrlPFunky ' . expand('')
185 
186 "make source tags
187 F5> : call UserFunctionSwitch(5) >
188 > : call UserFunctionSwitch(51) >
189 
190 "miniBuf
191 F6> : call UserFunctionSwitch(70) >
192 "buf exploler
193 > : call UserFunctionSwitch(7) >
194 
195 "quickfix 
196 F7> : call UserFunctionSwitch(8) >
197 "nmap <silent> 8 : call UserFunctionSwitch(80) <CR>
198 "nmap <silent> 9 : call UserFunctionSwitch(81) <CR>
199 "themes switch
200 > : call UserFunctionSwitch(6) >
201 
202 F8> : call UserFunctionSwitch(50) >
203 
204 "ack search file & symbols
205 >s : Ack Space>
206 >f : AckFile >
207 >q : q >
208 >qa : qall >
209 nmap :ag : Ag -i >
210 nmap :af : AgFile >
211 
212 " quit all & save session.vim.
213 F12> : call UserFunctionSwitch(30) >
214 >qs : call UserFunctionSwitch(30) >
215 >wq : wq >
216 >w : w >
217 >rn : %s/\r//g > "替换^M
218 >rs : call LeaveHandler() >
219 
220 " cscope
221 nmap cc : cscope find c >
222 nmap cd : cscope find d >
223 nmap cf : cscope find f >
224 nmap cg : cscope find g >
225 nmap cs : cscope find s >
226 nmap ct : cscope find t >
227 "##################################################################[function]
228 g:userFuncSwitch 1
229 g:line_number_show 0
230 g:mouse_enable 0
231 g:window_flag 1
232 g:MRU_flag 0
233 g:themes_flag 1
234 g:ctags ""
235 
236 g:quickfix 0
237 
238 function! UserFunctionSwitch(cmd)
239 = a:cmd
240 exec ":syntax on"
241 
242 if a:cmd 0
243     0
244         'set nu'
245         1
246         'Show line number!'
247     else
248         'set nonu'
249         0
250     endif
251     return
252 endif
253 
254 1
255     0
256         1
257         'set mouse=n'
258         'enable mouse'
259     else
260         0
261        'set mouse='
262         'disable mouse'
263     endif
264     return
265 endif
266 
267 2
268     'WMToggle'
269     return
270 endif
271 
272 3
273     'TagbarToggle'
274     return
275 endif
276 
277 4
278     0
279         1
280         'MRU'
281     else
282         0
283         'MRU'
284         'q'
285     endif
286     return
287 endif
288 
289 5
290     "Start make tag.."
291     g:time1 localtime()
292     system"~/.vim/shell/make-ctags.sh " shellescape'%:h')))
293     g:ctag_execcmd "set tags+=" g:ctags
294     g:ctag_execcmd
295     g:time2 ()
296     echo g:ctag_execcmd "escape time:" (g:time2 - g:time1)"s"
297     return
298 endif
299 
300 " 一键更新ctags & cscope..
301 50
302     " exec g:ctag_execcmd
303     " cs kill -1
304     " exec g:cscope_cmd
305     return
306 endif
307 
308 51
309     "Start make cscope.."
310     t1 ()
311     db "~/.vim/shell/cscope.sh " '%:p')))
312     path strpart(db,0,match"cscope.out")) " 必须这样截取,否则多余的结束符^@会导致cs add 异常. 
313     g:cscope_cmd "cs add " . path "cscope.out"
314     g:cscope_cmd
315     cs kill -1
316     g:cscope_cmd
317     t2 ()
318     t2 - t1)"s"
319     return
320 endif
321 
322 " 监听执行命令
323 52
324     " let cwd = getcwd()
325     " echo "cwd:" cwd
326     return
327 endif
328 
329 
330 6
331 
332     0
333         1
334         "colorscheme solarized"
335         g:molokai_original 0
336         g:rehash256 0
337         "set background=dark"
338         "set t_Co=32"
339         return
340     endif
341     1
342         2
343         "colorscheme molokai"
344         1
345         1
346         "set background=dark"
347         "set t_Co=256"
348         return
349     endif
350 
351     2
352         3
353         0
354         0
355         "colorscheme default"
356         "set background=light"
357         "set t_Co=128"
358         return
359     endif
360 
361     3
362         1
363 
364         "set background=dark"
365         "set t_Co=256"
366         return
367     endif
368     return
369 endif
370 
371 
372 70
373     'TMiniBufExplorer'
374     return
375 endi
376 
377 7
378     'ToggleBufExplorer'
379     return
380 endif
381 
382 8
383     0
384         1
385         "cclose"
386     else
387         0
388         "copen"
389     endif
390     return
391 endif
392 
393 80
394     1
395         "bn"
396     else
397         "cn"
398     endif
399     return
400 endif
401 
402 81
403     1
404         "bp"
405     else
406         "cp"
407     endif
408     return
409 endif
410 
411 20
412     "call MyTabLine()
413     "echo 'tab:' tab
414     return
415 endif
416 
417 30
418     g:quit_save 1
419     "qall"
420     return
421 endif
422 
423 endfunction
424 
425 "##################################################################[TlistToggle,NERDTree]
426 NERDTreeQuitOnOpen=1 "打开文件时关闭树
427 NERDTreeShowBookmarks"显示书签
428 Tlist_Show_One_File " 不同时显示多个文件的 tag ,只显示当前文件的
429 Tlist_Exit_OnlyWindow " 如果 taglist 窗口是最后一个窗口,则退出 vim
430 Tlist_Use_Right_Window 1
431 Tlist_Auto_Open 0
432 "###################################################################[cscope]
433 " http://www.jb51.cc/article/p-hjohkcxr-bb.html
434 
435 " 安装:
436 " sudo apt-get install cscope
437 
438 " 创建索引:
439 " cscope -Rbq
440 " 把需要创建索引的文件类型输入到这个文件
441 " find . -type f > cscope.files
442 
443 " 添加到vim:
444 " :cs add ./cscope.out
445 
446 " 查找函数func:
447 " :cs find s func
448 
449 " vim支持8种cscope的查询功能,如下:
450 " s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方(包括头文件)
451 " g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能(比如有可能只在头文件处)
452 " d: 查找本函数调用的函数
453 " c: 查找调用本函数的函数
454 " t: 查找指定的字符串
455 " e: 查找egrep模式,相当于egrep功能,但查找速度快多了
456 " f: 查找并打开文件,类似vim的find功能
457 " i: 查找包含本文件的文件
458 " 其他功能可输入:help cscope查看
459 
460 "cscope")
461     " set csprg=/usr/bin/cscope
462     csprg=cscope
463     csto=1
464     cst
465     nocsverb
466     " add any database in current directory
467     " if filereadable("cscope.out")
468         " cs add cscope.out
469         " else add database pointed to by environment
470     " elseif $CSCOPE_DB != ""
471         " cs add $CSCOPE_DB
472     " endif
473     csverb
474 endif
475 
476 "##################################################################[Ctrlp]
477 rtp+=~/.vim/bundle/ctrlp.vim
478 :helptags ~/vim/bundle/ctrlpvim/doc
479 g:ctrlp_map '<c-p>'
480 g:ctrlp_cmd 'CtrlP'
481 g:ctrlp_working_path_mode 'cra'
482 
483 g:ctrlp_custom_ignore = {
484     \ 'dir':  '\v[\/]\.(git|hg|svn|rvm|out|gen)$',485 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc|a|img|apk|bak|ko|deb|~|swp|tmp|html|jpg|png|bmp|ogg|log|jar|o)$',486     \ }
487 
488 wildignore+=*/tmp/*489 
490 g:ctrlp_regexp 1
491 
492 g:ctrlp_cache_dir '~/.cache/ctrlp'
493 g:ctrlp_show_hidden 0
494 
495 " sudo apt-get install silversearcher-ag
496 " when use ag,add custom ignore to : ~/.agignore
497 executable'ag')
498     g:ctrlp_use_caching 1
499     grepprg=ag\ --nogroup\ --nocolor
500     g:ctrlp_user_command 'ag %s -l --nocolor --hidden -g ""'
501 else
502     1
503     = ['.git',135)">'cd %s && git ls-files . -co --exclude-standard',135)">'find %s -type f']
504     g:ctrlp_prompt_mappings {
505     'AcceptSelection("e")': ['<space>',135)">'<cr>',135)">'<2-LeftMouse>'],506     }
507 endif
508 
509 " echo "g:ctrlp_user_command :" g:ctrlp_user_command
510 
511 g:ctrlp_clear_cache_on_exit 0
512 g:ctrlp_max_depth 100
513 g:ctrlp_max_files 5000000
514 
515 " ctrlp-funky
516 g:ctrlp_funky_syntax_highlight 1
517 "##################################################################[winManager]
518 g:NERDTree_title="[NERDTree]"
519 g:winManagerWindowLayout'NERDTree'
520 
521 function! NERDTree_Start()
522     'NERDTree'
523 endfunction
524 
525 function! NERDTree_IsValid()
526     return 1
527 endfunction
528 
529 " NOTIC!!! modefiy WinManager.vim to fixed open empty file bug:
530 "function! <SID>ToggleWindowsManager()  
531 "   if IsWinManagerVisible()  
532 "      call s:CloseWindowsManager()  
533 "   else  
534 "      call s:StartWindowsManager()  
535 "      exe 'q'  " ADD THIS LINE!
536 "   end  
537 "endfunction  
538 
539 "##################################################################[MiniBufExplorer]
540 g:default_open_minibufexplorer 0
541 g:miniBufExplMapWindowNavVim 1
542 g:miniBufExplMapWindowNavArrows 1
543 g:miniBufExplMapCTabSwitchBufs 1
544 g:miniBufExplModSelTarget 1
545 g:miniBufExplMoreThanOne0
546 
547 "BufExplorer
548 rtp+=~/.vim/bundle/bufexplorer
549 
550 g:bufExplorerShowRelativePath0  " Show absolute paths.
551 g:bufExplorerSortBy'extension'
552 'fullpath'
553 'mru'
554 'name'
555 'number'
556 
557 "nmap <silent> <s-F7> :BufExplorer<CR> 
558 "nmap <silent> <m-F7> :BufExplorerHorizontalSplit<CR>
559 "nmap <silent> <c-F7> :BufExplorerVerticalSplit<CR>
560 "##################################################################[SuperTab]
561 g:SuperTabDefaultCompletionType"context"
562 
563 "##################################################################[TagbarToggle]
564 g:tagbar_ctags_bin 'ctags'
565 g:tagbar_width 30
566 
567 "##################################################################[mru]
568 rtp+=~/.vim/bundle/mru
569 g:MRU_Max_Entries 1000
570 g:MRU_Exclude_Files '^/tmp/.*\|^/var/tmp/.*'  " For Unix
571 g:MRU_Include_Files '\.c$\|\.h$'
572 g:MRU_Window_Height 8
573 "let g:MRU_Use_Current_Window = 1
574 g:MRU_Auto_Close 0
575 g:MRU_Max_Menu_Entries 20
576 
577 "##################################################################[auto-pairs]
578 runtimepath^=~/.vim/bundle/auto-pairs
579 g:AutoPairsFlyMode 1
580 g:AutoPairsShortcutBackInsert '<M-b>'
581 laststatus=2
582 "##################################################################[nerdcommenter] "\cc 注释当前行和选中行  
583 "\cu 取消注释 
584 rtp+=~/.vim/bundle/nerdcommenter
585 g:NERDSpaceDelims 1
586 g:NERDAltDelims_java 1
587 g:NERDCustomDelimiters { 'c': 'left': '/**',135)">'right': '*/' } }
588 g:NERDCommentEmptyLines 1
589 g:NERDTrimTrailingWhitespace 1
590 g:NERDCompactSexyComs 1
591 
592 "##################################################################[ack]
593 rtp+=~/.vim/bundle/ack.vim
594 g:ackprg '~/.vim/shell/xgrep' "find symbols and files.
595 g:ack_autoclose 1
596 g:ackpreview 1
597 g:ackhighlight 1
598 g:ack_autofold_results 0
599 g:ack_lhandler "botright lopen 8"
600 g:ack_qhandler "botright copen 8"
601 
602 "##################################################################[resume history]
603 g:AutoSessionFile "/session.vim"
604 if(g:AutoSessionFilefindfile)))
605     copysh
606     source ~/.ctags/sessionvim
607 endif
608 
609 g:AutoCscopeFile "/cscope.out"
610 (g:AutoCscopeFile)))
611     " 必须这样截取,否则多余的结束符^@会导致cs add 异常. 
612     (g:AutoCscopeFile,98)">))
613     cmd "cscope.out"
614 "path:" path
615 "cmd:" cmd
616     silent: cmd
617 endif
618 
619 call LeaveHandler()
620 function! LeaveHandler()
621     (g:quit_save )
622         g:path "~/.vim/shell/get_path.sh " )))
623         execcmd "mks! "g:path
624         execcmd
625         execcmd
626     else
627         "exit but no save session.vim"
628     endif
629 endfunction
630 
631 


现在,基本可以使用vim代替si了 !

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全局的情况下:即所有用户都能用这个配置文件地址:/etc/vimrc在文件中添加:setfileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936settermencoding=utf-8setencoding=utf-8如果只修改个人的vim配置情况:需要把/etc/
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。相关文章:史上最全Vim快捷键键位图—入门到进阶什么是vim
      vim正则匹配:空行:/^$/  /^[\t]*$/注释行:/^#/ /^[\t]*#/:1,$s/\([Rr]\)oot/\1ename/:1,$s/\(square\)and\(fair\)/\2and\1/ 
$select-editorSelectaneditor.Tochangelater,run'select-editor'.1./bin/ed2./binano<----easiest3./usr/bin/code4./usr/bin/vim.basic5./usr/bin/vim.tinyChoose1-5[2]:4
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下预览图安装工具:u盘、manjarokdeminimal20.0.3、win32DiskImager提取码:qt9f进bios、选择u盘启动、改语言、改时区、挂载分区(文件系统ext4、在200M左右的一个FAT分区上挂载/boot/efi)、安装安装很简单,按提示
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置vi文本编译器,其他的文本编译器则不一定存在很多软件的编译接口都会主动调用vivim有很强的程序编译能力,可以主动的一字体颜色辨别语法的正确性,方便程序设计因为程序简单,编译速度相当快vi的使用一般命令模
主机名字太长,怎么修改?  1.sudovim/etc/hostname 修改内容为wel,  本地主机名 2.sudovim/etc/hosts      修改主机名为wel,用于网络连接中主机名的识别 3.reboot 
目录#事故现场#事故原因#解决方法方法一:使用notepad转换方法二:使用vscode转换方法三:使用vim转换#参考#事故现场执行shell脚本文件,报错::notfound.sh:6:coreinstall.sh:查看脚本文件第6行,发现是空行;#事故原因window下的换行是回车符+换行符,也就是\r\n,而unix下是换行符\n
1、保存并退出linux下安装好了vim以及gcc后,我们开始新建一个c文件,例如:vimtest.c之后进入vim的编辑框中,点击i进入插入模式,开始编辑程序,当你编写好自己的程序之后,按Esc退出插入编辑状态,然后输入冒号加wq,点击Enter即可,完整的命令如下:wq如下图:  退出后,如果想要编译
概述使用VIM作简单字数统计背景想做一个简单的字数统计环境OSwin10shellmintty-2.9.41.需求概述需求需求统计文段内字符的数量支持自定义字符集2.方案1:vim自带统计概述vim自带方案操作定位到文段内某行vi
经典版下面这个键位图应该是大家最常看见的经典版了。对应的简体中文版其实经典版是一系列的入门教程键位图的组合结果,下面是不同编辑模式下的键位图。 
ssh是一个安全连接协议。作用两个:1.远程连接协议,2.远程文件传输协议协议默认端口为:22。 修改默认端口,再到ssh服务配置文件位置  vim/etc/ssh/ssh_config这条命令就可以修改了。按下ESC键,再输入:x 也可以退出vim。(和:q! 相同)修改注意:1.端口号在0-65535之间。2.别人
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢
在Vim中,有时需要将tab转换成space。使用ret命令(replacetab)。[range]ret[ab]![new-tabstop]举例:将第一行到文件尾的tab转换成space,每个tab用4个space替代。:setexpandtab:%ret!4如果没有给定4,则用当前的tab宽度设定替换为space。 相关配置文件命令::settabstop=4设
分屏命令记不得文件名就输入.可浏览文件命令英文功能:sp[文件名]split横向分屏:vsp[文件名]verticalsplit纵向分屏    切换分屏窗口先按Ctrlw切换窗口命令英文功能 wwindow切换下一个窗口 rreverse互换窗口 c
1查看ctags支持的语言ctags--list-languages2查看语言和扩展名的对应关系ctags--list-maps 3对当前目录下所有ctags支持的语言格式文件生成tagsctags-R*缺点很明显,tags会非常大,tags生成会非常慢,而且代码跳转会卡顿。4只对特定文件生成tagsctags`find-name"*.h"`ct
vim基本命令 $vimtutor可以查看基本的vim操作1h(left)j(down)k(up)l(right)q!wqi:insertbeforethecursor(insert)插队嘛,肯定在光标前面A:appendaftertheline(appending)2dw:删除一个单词,保留光标前面部分d$:删除光标之后的同行
~/.vimrc内容如下:setnocompatiblefiletypeoffsetrtp+=~/.vim/bundle/Vundle.vimcallvundle#begin()Plugin'VundleVim/Vundle.vim'Plugin'tpope/vim-fugitive'Plugin'tpope/vim-unimpaired'Plugin'tpope/vim-repeat'Plu
程序:硬盘静态的代码  占用磁盘空间进程:内存运行计算的代码 占用CPU运行内存父进程与子进程  树型结构进程唯一标识: PID僵尸进程找到父进程杀掉  孤儿进程疯狂要内存  危害大 pstree [选项]-a显示完整命令行   -p 查看PID [PID或用户
~/.vimrc"Configurationfileforvimsetmodelines=0 "CVE-2007-2438setnumber"setrelativenumber"显示相对行号(这个非常重要,慢慢体会)setcursorlinesetcursorcolumnsetrulersetscrollbindsetencoding=utf-8colormolokaisyntaxon"开启