vi/vim 编辑器笔记

1.vi的基本概念:

基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insert mode)和底行模式(last line mode),

1)命令行模式控制屏幕光标的移动,字符、字或行的删除,移动复制某区段

2)只有在插入模式下,才可以做文字输入,按[ESC]键可回到命令行模式。

3)底行模式将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

 

2.vi的基本操作 

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面例如:$ vi myfile; 进入vi之后,是命令模式;

 在命令模式下,按一下字母「i」可以进入插入模式, 再按一下[ESC]键转回到命令模式;在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。

 退出vi及保存文件,在命令行模式下,按一下[:]冒号键进入底行模式,例如:

:w //Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。

: w filename //输入[w filename]将文件以指定的文件名filename保存;若filename已存在则会提示File exists (use ! to override), 使用:w! filename 将覆盖后保存。

: wq //输入[wq],存盘并退出vi

:q //系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则提示No writesince last change (use ! to overrides),然后Vi并不退出,继续等待用户命令.

:q! //不存盘强制退出vi

:x //功能与命令模式下的ZZ命令功能相同。


命令备忘:

ctrl -w]   分割窗口

ctrl -双击w   轮换窗口


使用记录:

使用系统粘贴板 Shift+Inset 相当于普通编辑器下的Ctrl+v

vim配置简介:

参考:http://hi.baidu.com/soulingm/blog/item/58f73ff976c2bc869f514676.html   或 http://blog.csdn.net/wooin/article/details/1858917

增加对中文的支持

方法1

.在Linux下vim显示utf-8编码的文件乱码,比如一个文件用utf-8编码,文件头:
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
使用VIM编辑,中文显示会是乱码。
解决:只需要在Linux的VIM下面一行命令:set encoding=utf-8 termencoding=gbk 显示中文就没有问题了。
但保存时会有问题,提示:“CONVERSION ERROR ” 需要再加一行:set fileencoding=utf-8
总结:编辑一个utf-8的文件,在VIM使用命令::set encoding=utf-8 termencoding=gbk fileencoding=utf-8

 方法2
在.vimrc文件中加下面三行
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8  
set encoding=cp936


高亮语法:
1.编辑_vimrc文件加入以下内容:
set nu!
colorscheme desert
syntax enable
syntax on

2.~\vim73\syntax 文件夹下选择需要编辑的源文件类型,如c.vim,cpp.vim, java.vim   加入以下内容:

"========================================================
" Highlight All Function
"========================================================
syn match   cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>[^()]*)("me=e-2
syn match   cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>/s*("me=e-1
hi cFunction        gui=NONE guifg=#B5A1FF

"========================================================
" Highlight All Math Operator
"========================================================
" C math operators
syn match       cMathOperator     display "[-+/*/%=]"
" C pointer operators
syn match       cPointerOperator  display "->/|/."
" C logical   operators - boolean results
syn match       cLogicalOperator  display "[!<>]=/="
syn match       cLogicalOperator  display "=="
" C bit operators
syn match       cBinaryOperator   display "/(&/||/|/^/|<</|>>/)=/="
syn match       cBinaryOperator   display "/~"
syn match       cBinaryOperatorError display "/~="
" More C logical operators - highlight in preference to binary
syn match       cLogicalOperator  display "&&/|||"
syn match       cLogicalOperatorError display "/(&&/|||/)="

" Math Operator
hi cMathOperator            guifg=#3EFFE2
hi cPointerOperator         guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cBinaryOperator          guifg=#3EFFE2
hi cBinaryOperatorError     guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cLogicalOperatorError    guifg=#3EFFE2


程序中跳转。ec57w32.zip 地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip
ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制到~Vim\vim73下,并编辑_vimrc文件,添加以下内容:
set tags=tags;
set autochdir
打开cmd命令行,切换到你要查看的源代码的根目录处,运行
ctags -R *
将会在此目录处生成一个tags文件。

按下"ctrl+]",光标会自动跳转到定义处;按下"ctrl+T"会跳回到原来的位置。
源文件有更新时,重新运行ctags -R命令,更新tags文件


窗口管理。

winmanager.zip 地址http://www.vim.org/scripts/download_script.php?src_id=754

winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:

""""""""""""""""""""""""""""""
" winManager setting
""""""""""""""""""""""""""""""
let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
let g:winManagerWidth = 30
let g:defaultExplorer = 0
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
"nmap <silent> <leader>wm :WMToggle<cr>

normal模式下键入“wm”进入


taglist_45.zip 地址http://www.vim.org/scripts/download_script.php?src_id=7701
taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到~\Vim\vim73下的doc及plugin中。
在_vimrc文件中加入以下内容:
let Tlist_Show_One_File=1                        "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow=1
                     "如果taglist窗口是最后一个窗口,则退出vim
letTlist_Use_Right_Window = 1                "在右侧窗口中显示taglist窗口
用gvim打开代码文件(已生成过tags文件),:Tlist,TagList窗口即出现。

在taglist窗口中,可以使用下面的快捷键
<CR>       跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o             在一个新打开的窗口中显示光标下tag
<Space>  显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=             将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q             关闭taglist窗口
<F1>          显示帮助

使用命令:TlistOpen打开,使用:TlistClose 关闭,或者使用”:TlistToggle“在打开和关闭间切换。

使用<F9>键就可以打开/关闭taglist窗口:

map <silent> <F9> :TlistToggle<cr> 

[缓冲区浏览]  BufExplorer插件在下载:http://vim.sourceforge.net/scripts/script.php?script_id=42

vimrc配置:

""""""""""""""""""""""""""""""
" BufExplorer
""""""""""""""""""""""""""""""
let g:bufExplorerDefaultHelp=0       " Do not show default help.
let g:bufExplorerShowRelativePath=1  " Show relative paths.
let g:bufExplorerSortBy='mru'        " Sort by most recently used.
let g:bufExplorerSplitRight=0        " Split left.
let g:bufExplorerSplitVertical=1     " Split vertically.
let g:bufExplorerSplitVertSize = 30  " Split width
let g:bufExplorerUseCurrentWindow=1  " Open in new window.
autocmd BufWinEnter \[Buf\ List\] setl nonumber


多文件编辑。minibufexpl.vim 地址http://www.vim.org/scripts/download_script.php?src_id=3640
minibufexpl.vim复制到~\Vim\vim73\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1

ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;
ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;
ctrl+箭头键,可以切换到上下左右窗口中;
ctrl+h,j,k,l,切换到上下左右的窗口中。


在工程中快速查找。grep.vim 地址http://www.vim.org/scripts/download_script.php?src_id=7645
grep.vim复制到~\Vim\vim73\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
用gvim打开源码文件,并将光标定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。


.高亮的书签。 visualmark.vim 地址http://www.vim.org/scripts/download_script.php?src_id=4700
visualmark.vim复制到~\Vim\vim73\plugin
用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,如果是vim用"mm", 即添加了书签。使用F2在书签之间正向切换,shift+F2反向切换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值