vim常用的个人使用总结

使用vim这么久,其实常用的总结只有如下几点:

 

1.如何复制多行代码 ?

光标移到第5行任意位置,输入ma

光标移到第1行任意位置,输入y'a(这一定要打这个“'”单引号,否则就进入“INSERT”状态了

光标移到需要复制的行,输入p,行前复制输入大写P

2.如何快速由命令状态切换到编辑状态?

i:在当前字符前 进入编辑状态;

I:在当前行首进入编辑状态;

o:在下一行进入编辑状态;

O:在上一行进入编辑状态;

a:在当前字符后进入编辑状态;

A:在当前行的尾部进入编辑状态;

3.如何跳转到指定行?

方法一: 输入100gg   跳转到第100行;

方法二:输入:n100

方法三:输入100G

4.源码中如何移动行?比如当复制代码时候,某一段代码需要整体左移一个tab距离

           直接在命令里面使用    98gg4<<    98表示开始行,4表示移动4行

5.如何快速自动排版?

a.定位到文件尾  G ;

b.按=;

c.移动到文件头 gg;

由于=符号被映射了,故对于快速排版自定义了快捷键:

6.如何快速查找下一个关键字? 比如函数名在本文档中在哪被调用了,用于查找局部变量较好

     向前查找 *

     向后查找 #

7.使用代码跳转时候,会出现E262: error reading cscope connection 0 这个问题,但重启vim后就不会了?

vim切换目录造成的,需要

:cs kill 0

:   cs add  cscope.out文件

8.如何快速刷新工程代码?

首先有一个刷新 CreatCscope.sh

   1 find ./ -name "*.h" -o -name "*.c" -o -name "*.cpp" > cscope.files

  3 cscope -Rbkq -i cscope.files

  5 ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q

其次写一个脚本作为命令

最后在.vimrc中,增加一个快捷键执行该命令:

使用:需要刷新时候,在vim命令模式   按下ctrl + F5

对于源码的函数跟定义字符串,可以使用在源码的路径下使用:   make tags

然后把tags路径添加到vimrc里面来。

9.如何快速增加注释说明呢?

修改了vimrc   

=  注释

-   取消注释

10.多行快速注释怎么设置快捷键? 理解说明的意思

在~/.vimrc中添加如下两行,映射 = 为添加注释, - 为取消注释

map = ^[i/*^[A*/^[

map - ^[^xx^[$xx^[

^[i/*^[A*/^[ 解释:

    先返回Normal模式(^[),在切换到Insert模式(i),输入注释符号(/*),再返回Normal模式(^[),在行尾追加(A),输入注释符号(*/),最后返回Normal模式(^[)

^[^xx^[$xx^[ 解释:

    先返回Normal模式(^[),在定位在行首(^),删除两个字符(xx),再返回Normal模式(^[),在定位到行尾($),删除两个字符(xx),最后返回Normal模式(^[)

注意:

^[ 代表Esc按键,输入方式为先按住Ctrl+V,再俺Esc键,不要直接输入^[

11.如何能够对if while for进行补全呢?

12.如何利用寄存器来高效的多个复制,并用? 

参考文档:http://blog.csdn.net/yangzhongxuan/article/details/8394001

利用a-z 寄存器,保存文本

复制:   "ayy   复制该行到a寄存器

                "byy   复制该行到b寄存器

粘贴      "ap      粘贴a寄存器内的内容

               "bp     粘贴b寄存器内的内容

如何查看所有寄存器保存的内容呢?

:reg

清除寄存器?将i寄存器内容清除?

:let @i = ""

13.MiniBufExplorer   缓存太多怎么办?浪费显示位置

跳转到该窗口删除掉

:ls    当前打开的buf

:bn    下一个buf

:bp    前一个buf

:b<n>    n是数字,第n个buf

:b<tab>    自动补齐

:bd    删除buf

14.文档页面内如何实现字符串的匹配替换?

一个单词替换另一个单词:

:%s/old/new/g

指定特定单词开始字母匹配替换:

          :%s/\<old/new/g

指定特定单词,全单词匹配替换

          :%s/\<old\>/new/g

只是替换操作注释里面的单词则

          :s/old/new/gc

15.制定编辑移动的总结:

1.先使用G 或者gg到大概的页面;

2.使用H  M  L 调大该页面的上中下附件位置

3. 使用ngg 到指定的行

4.使用  0  $    ^ 到最终位置的附件

5.使用b  e 移动到该位置

6.使用fx/Fx移动到指定的下一个/上一个字符

7.到达了最终编辑位置

16.查找已知字符串编辑:

1.使用/字符串  查找所有结果

2.使用n  N 跳转到下一个/上一个匹配字符串

3.或者使用*  # 快速跳转到下一个/上一个相同字符串

17.如何修改单个字符?

字符替换

r            单个字符替换

R            连续替换

~           更改大小写

18.如何将代码不部分转成html 发布bolg?

:Tohtml

19.撤销与恢复:

u 撤销

ctrl-r 恢复

 

 

个人配置文件如下:

 1 map <F9> :call SaveInputData()<CR>

  2 func! SaveInputData()

  3     exec "tabnew"

  4     exec 'normal "+gP'

  5     exec "w! /tmp/input_data"

  6 endfunc

  7

  8

  9 "colorscheme torte

 10 "colorscheme murphy

 11 "colorscheme desert

 12 "colorscheme elflord

 13 "colorscheme ron

 14 colorscheme zellner    "first

 15 "colorscheme slate

 16 "colorscheme pablo

 17 "colorscheme koehler

 18 "colorscheme visualstudio

 19

 20 "syntax on

 21

 22 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

 23 "set termencoding=utf-8

 24 "set encoding=euc-cn

 25 set fileencodings=euc-cn,ucs-bom,utf-8,cp936

 26 "set fileencoding=euc-cn

 27

 28 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 29 " 显示相关  

 30 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

 31 highlight Pmenu    ctermbg=darkred 

 32 highlight PmenuSel ctermbg=red ctermfg=blue

 33 "Tab Color Setting

 34 highlight TabLine term=underline cterm=bold ctermfg=9 ctermbg=4

 35 highlight TabLineSel term=bold cterm=bold ctermbg=Red ctermfg=yellow

 36 "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  

 37 "winpos 5 5          " 设定窗口位置  

 38 "set lines=40 columns=155    " 设定窗口大小  

 39 set go=             " 不要图形按钮  

 40 "color asmanian2     " 设置背景主题  

 41 set guifont=Courier_New:h10:cANSI   " 设置字体  

 42 syntax on           " 语法高亮  

 43 autocmd InsertLeave * se nocul  " 用浅色高亮当前行  

 44 autocmd InsertEnter * se cul    " 用浅色高亮当前行  

 45 set ruler           " 显示标尺  

 46 set showcmd         " 输入的命令显示出来,看的清楚些  

 47 set smarttab

 48 set wildmenu

 49 set tabstop=4

 50 set softtabstop=4

 51 set shiftwidth=4

 52 "set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  

 53 "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  

 54 set scrolloff=5     " 光标移动到buffer的顶部和底部时保持3行距离  

 55 set novisualbell    " 不要闪烁(不明白)  

 56 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容  

 57 set laststatus=2    " 启动显示状态行(1),总是显示状态行(2)  

 58 set foldenable      " 允许折叠  

 59 set foldmethod=manual   " 手动折叠  

 60 "set background=dark "背景使用黑色

 61 set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  

 62 " 显示中文帮助

 63 if version >= 603

 64     set helplang=cn

 65     set encoding=utf-8

 66 endif

 67 set so=5

 68 set nu

 69

 70 "Edit

 71 set backspace=indent,eol,start

 72 let g:winManagerWindowLayout='FileExplorer|TagList'

 73 nmap wm :WMToggle<cr> 

 74 "窗口

 75 map <c-h> <c-w>h

 76 map <c-l> <c-w>l

 77 map <c-j> <c-w>j

 78 map <c-k> <c-w>k

 79 "minibufexpl

 80 "let g:miniBufExplMapCTabSwitchBufs = 1

 81 let g:miniBufExplMapWindowNavArrows = 1

 82 "change h c cpp file

 83 nnoremap <silent> <F12> :A<CR>

 84 "grep vim

 85 nnoremap <silent> <F3> :Grep<CR>

 86

 87 set nocp

 88 filetype plugin indent on 

 89 filetype plugin on

 90

 91 "高亮显示某个字符串

 92 "搜索时乎略大小写至少包含一个大写字母时候才对大小写敏感

 93 set ignorecase

 94 "set smartcase

 95 set hls

 96 "map <F8>:set hls!<BAR>set hls?<CR>

 97

 98 "快速注释一行  多行

 99 "map = ^[i/*^[A*/^[

100 map =  ^[^i/*^[A*/^[

101 map -  ^[^xx^[$xx^[

102 noremap <S-F> G=gg

103

104 "my set 11-12"

105 run macros/gdb_mappings.vim

106 set tags=./tags,../tags,../../tags,../../../tags,../../../../tags,../../../../../tags,../../../../../../tags,../../../../../../../tags,/opt/VTRON_PORJ/VledCTR/sw/linux/system/linux-2.6.30/tags

107 "tlist

108 let Tlist_Show_One_File=1

109 let Tlist_Exit_OnlyWindow=1

110

111

112 "代码自动补全功能的配置

113 "map <F6> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<RETURN>

114 map <C-F6> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

115 map <C-F5> :!ReflushVledCTR   <CR>

116 "配置提示情况,在什么时候提示代码补全

117 let OmniCpp_NamespaceSearch = 1

118 let OmniCpp_GlobalScopeSearch = 1

119 let OmniCpp_ShowAccess = 1 

120 let OmniCpp_ShowPrototypeInAbbr = 1 " 显示函数参数列表

121 "let OmniCpp_MayCompleteDot = 1   " 输入 .  后自动补全

122 "let OmniCpp_MayCompleteArrow = 1 " 输入 -> 后自动补全

123 "let OmniCpp_MayCompleteScope = 1 " 输入 :: 后自动补全

124 let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

125 let OmniCpp_DisplayMode = 1

126 " 自动关闭补全窗口

127 au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif 

128 set completeopt=menuone,menu,longest

129 "按下TAB的时候进行代码补全提示

130 let g:SuperTabRetainCompletionType=2

131 let g:SuperTabDefaultCompletionType="<C-X><C-O>"

132

133

134 "cscope

135 "stetting --"                                                                              

136 if has("cscope")

137         set csprg=/usr/local/bin/cscope

138         set csto=0

139         set cst

140         set nocsverb

141         "echo "cscope have!"

142         " add any database in current directory

143          if filereadable("cscope.out")

144             echo "filereadable cscope.out"

145             cs add cscope.out

146         "else add database pointed to by environment

147         elseif $CSCOPE_DB!=""

148             echo "have CSCOPE_DB"

149             cs add $CSCOPE_DB

150         "else search cscope.out elsewhere

151         else

152             let cscope_file=findfile("cscope.out",".;")    

153             let cscope_pre=matchstr(cscope_file,".*/")

154             if !empty(cscope_file) && filereadable(cscope_file)

155                 "echo "have my cscope.out"

156                 "echo cscope_file

157                 "echo cscope_pre

158                exe "cs add" cscope_file cscope_pre

159             endif

160         endif

161         set csverb

162         set cscopetag

163         set cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i-

164 else

165     echo "cscope no have!"

166 endif

167 nmap <C-s> :cs find s <C-R>=expand("<cword>")<CR><CR>

168 "按下CTRL+g的时候进行定义跳转

169 nmap <C-g> :cs find g <C-R>=expand("<cword>")<CR><CR>

170 nmap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR>

171 "按下CTRL+T的时候,进行搜索字符串

172 nmap <C-t> :cs find t <C-R>=expand("<cword>")<CR><CR>

173 nmap <C-d> :cs find d <C-R>=expand("<cword>")<CR><CR>

174 "按下ctrl+f 的时候进行文件跳转,

175 nmap <C-f> :cs find f <C-R>=expand("<cfile>")<CR><CR>

176

177

178 let NERDChristmasTree=1

179 let NERDTreeAutoCenter=1

180 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'

181 let NERDTreeMouseMode=2

182 let NERDTreeShowBookmarks=1

183 let NERDTreeShowFiles=1

184 let NERDTreeShowHidden=1

185 let NERDTreeShowLineNumbers=1

186 let NERDTreeWinPos='left'

187 let NERDTreeWinSize=31

188 "nnoremap f :NERDTreeToggle

189 "map <F7> :NERDTree<CR>  



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值