Vim 编辑命令3

查找:
在使用/ 或?命令进行查找后,使用*或#进行前后遍历。

多文本编辑
1. Ctrl-^跳转到上一个编辑文件。
2. 使用BufExplorer来切换Buffer比较方便,\be进入文件列表,可以使用d关闭文件。

更详细的内容

 以下为转载内容:

/\<word\> 精确搜索单词word

查找一个文件:把光标置于所要查找的文件名上,然后键入"gf".当这个文件并不在工作目录下时,Vim会用在`path`选项中定义的目录去查找它. 该选项的内容是一个以逗号分隔的目录名列表,格式为::set path+=c:/prog/include.

或通过:find filename来查找。

或通过":sfind"命令来替代":find"命令,在新窗口中打开。

========================================================================================

set nocompatible “设置默认模式为普通vim模式”

set backspace=indent,eol,start "Insert模式下退格键何时可以删除光标之前的字符. 选项中以逗号分隔的三项内容分别指定了Vim可以删除位于行首                                  的空格, 断行, 以及开始进入Insert模式之前的位置"

:set ignorecase 忽略大小写匹配

:set noignorecase 大小写的精确匹配

:set number 在每行的前面显示一个行号

:set nonumber 关闭行号显示

:set ruler 开启右下角的光标位置显示

:set noruler 关闭右下角的光标位置显示

:set hlsearch 高亮显示搜索结果

:set nohlsearch 关闭高亮显示搜索结果

:nohlsearch 去掉当前的高亮显示

:set incsearch 在键入目标字符串的过程中就同时开始搜索

:set wrapscan 搜索过程在文件内部循环进行(默认)

:set nowrapscan 搜索过程在文件内部只进行一次

set autoindent "在开始一个新行时对该行施以上一行的缩进方式."

set history=50 "设置冒号命令和搜索命令的命令历史列表的长度"

set ruler "总是在Vim窗口的右下角显示当前光标的行列信息"

set showcmd "Vim窗口的右下角显示一个完整的命令已经完成的部分"

set incsearch "在键入要搜索的字串的同时就开始搜索当前已经键入的部分"

map Q gq "定义了一个"Q"命令映射到"gq"操作符命令,进入Ex模式"

filetype on "自动识别文件类型"

plugin on "用文件类型plugin脚本,对某种文件类型来说最常用的选项可以放在一个Vim中叫文件类型plugin的脚本里.请参考|write-filetype-plain|"

indent on "使用缩进定义文件,请参考jfiletype-indent-onj和°indentexpr°选项"

"autocmd FileType text setlocal textwidth=78 "

autocmd FileType text "是一个自动命令. 它所定义的是每当文件类型被设置为"text"时就自动执行它后面的命令."

setlocal textwidth=78 "在当前行已超过78个字符时,让Vim可以自动断行,这种设置只对当前的一个文件有效."

:options "打开选项帮助窗口"

:help `wrap` "获得选项关键字的详细解释"

:set iskeyword& "恢复一个选项值的默认设置"

:set nowrap "控制长行是否折到下一行显示的命令是"

:set sidescroll=10 "查看左右10个字符的上下文"

:set whichwrap=b,s "控制移动光标移动到行首或行尾时的操作,光标位于行首时按退格键会往回移动到上一行的行尾. 同时在行尾按空格键也会移动到下                     一行的行首"

:set whichwrap=b,s,<,> "左右箭头键在遇到行的边界时可以转行,在normal模式下"

:set whichwrap=b,s,<,>,[,] "左右箭头键在遇到行的边界时可以转行,Insert模式下"

:set list "设置制表符成为可见的字符"

:set listchars=tab:>-,trail:- "使制表符以">---"显示, 同时行尾空格以"-"显示"

:set iskeyword

iskeyword=@,48-57,_,192-255 > "定义了一个word中可以包含哪些字符,"@"在这里代指所有的字母. "48-57"ASCII码从4857的那些字符, 09.                             "192-255"是可打印拉丁字母,要去除一个字符使用操作符"-=",要添加一个字符使用操作符"+=""

:syntax enable "打开色彩"

:set background="/dark" "设置背景颜色为暗色(或light亮色)"

:colorscheme evening "选择颜色方案(evening),其他颜色方案在$VIMRUNTIME/colors目录中"

:source $VIMRUNTIME/syntax/2html.vim "把当前文件转到HTML格式"

:set autowrite "每当需要时就自动保存,不需要过问"

:set noautowrite "每当需要保存时,就过问"

:set backup "生成备份文件"

:set backupext=.bak "重新命名备份文件的后缀为.bak" 备注: 如果°backup°选项是关闭的但°writebackup°选项是打开的, Vim还会生成一个备份文件. 但是, 一旦该文件被成功地保存它就会被自动删除.

:set patchmode=.orig "对原始文件进行备份"

:set backupext=.old  "指定对原始文件进行备份的后缀"

:write >> logfile "把当前文件的内容追加到logfile文件中"

:set fileformats=unix,dos "Vim能自动识别的格式的集合"

:set fileformat? "查看当前的文件格式,vim中有三种格式,分别是:unix <LF>dos <CR><LF>mac <CR>"

:edit ++fileformat=unix|dos|mac file.txt "强制指定文件file.txt的格式为unix,dosmac++fileformat可荐絬为++ff"

把一个dos格式的文件转换成unix格式可以通过以下两步完成:

:set fileformat=unix

:write

:set showmatch "键入"闭括号"时显示它与前面的哪个"开括号"匹配,对于大,中,小括号都适用"

:set matchtime=15 "设置键入某个闭括号时,等待时间的长短,时间单位是十分之一秒"

:set textwidth=30 限制每一行能有多少个字符。注:`wrap`选项使Vim能显示需要折行的过长的行, 但只是为了显示的需要, 并不在文件中实际插入一个换行符

:set autoindent "自动插入缩进"

>> "增加一行的缩进量"

<< "减少一行的缩进量"

:set shiftwidth=4 "设置缩进量增减的单位,但会得到一个8字符的缩进,可以通过:set softtabstop=4来控制缩进"

:set tabstop=3 "设置制表符的字符长度"

:retab 8 "重置制表符的长度为8"

 

========================================================================================

多文本编辑:

:edit otherfilename "编辑另一个文件,但需要事先保存原文件"

:hide edit otherfilename "编辑另一个文件,不需要事先保存原文件"

vim one.c two.c three.c "启动时就指定要编辑的多个文件,使用nextnext!wnext转到下一个文件,使用perviouswpervious转到上一个文件,使用last转到最后一个文件,使用first转到第一个文件使用args可以查看正在编辑的文件名"

:args 1.c 2.h 3.h "重新定义编辑的文件列表"

CTRL-^ "跳转到刚刚编辑过的文件"

`"   "返回上次离开该文件时光标所在的位置"

`.   "返回最后一次对文件做出改动处"

vim -R file 以只读方式打开文件,同"view file",但可以使用!强制执行。vim -

:saveas "把现有的文件另存为一个新文件"

:winheight "设置一个期望的最小的窗口高度. "

:winminheight "设置一个强制的最小高度"

:winwidth "指定期望的最小窗口宽度"

:winminwidth "强制的最小窗口宽度."

:equalalways "在每次打开或关闭窗口Vim都自动让所有窗口均摊屏幕上可用的高度和宽度."

:split "分割一个窗口为两个,可以通过split newfile在新窗口中打开newfile,可以使用CTRLW来切换当前窗口,使用CTRL-w +-来改变窗口的大小,使用:close来关闭窗口,使用:only可以关闭除当前窗口外的其他窗口"

:new "打开一个新窗口并开始编辑一个新的缓冲区"

:vsplit "创建新窗口位于当前窗口的左边"

:vnew "用于垂直分隔窗口并在其中打开一个新的空缓冲区"

:set scrollbind "设置多窗口同步滚动"

:set noscrollbind "取消多窗口同步滚动"

 

CTRL-W j "切换窗口到下面的窗口"

CTRL-W k "切换窗口到上面的窗口"

CTRL-W h "切换窗口到左边的窗口"

CTRL-W l "切换窗口到右边的窗口"

CTRL-W t "切换窗口到顶部窗口"

CTRL-W b "切换窗口到底部窗口"

 

CTRL-W K "向上移动窗口"

CTRL-W J "向下移动窗口"

CTRL-W H "向左移动窗口"

CTRL-W L "向右移动窗口"

 

:qall "退出所有窗口"

:wall "保存所有窗口"

:wqall "保存并退出所有窗口"

:qall! "强制退出所有窗口"

 

vim -o() filename1,2,3... "为每个文件打开一个窗口,水平排列"

vim -o() filename1,2,3... "为每个文件打开一个窗口,竖直排列"

vimdiff filename1 filename2 ... "显示文件间的不同之处"

zo "展开层叠显示"

zc "收起层叠显示"

]c "直接向前定位到下一个不同之处"

[c "直接向后定位到下一个不同之处"

:diffupdate "重新比较两个文件"

========================================================================================

四、      visual 模式 ("v"可以进入Visual模式)

CTRL-V 对矩形的文本块为对象进行操作

o (小)让光标置于被选中文本的对角,如果时单独一列,就是上下移动。提示: o 代表other end另一头)

O (大)让光标在同一行的左右两个角之间移动

p (小)把放入缓存的内容放到当前光标后面(提示:pput.3p,可以把三分放入当前光标后。

P (大)把放入缓存的内容放到当前光标前面.

y (小)把文本复制到一个寄存器中,该寄存器为vim私有的。该命令是一个操作符命令,如:“yy”复制一整行,“y2w”复制两个word,包括后面的空白字符,“ye”复制一个word,不包括后面的空白字符,“y$”复制当前光标至行尾.

Y (大)复制一整行。

c (小)

 

========================================================================================

五、      replace模式(大写的"R"可以进入替换模式):

replace模式下的例外是按下回车键并不会把当前字符替换为回车, 而是插入一个回车

小节:

x 删除当前光标下的字符("dl"的快捷命令)

X 删除当前光标之前的字符("dh"的快捷命令)

D 删除自当前光标至行尾的内容("d$"的快捷命令)

dw 删除自当前光标至下一个word的开头

db 删除自当前光标至前一个word的开始

diw 删除当前光标所在的word(不包括空白字符)

daw 删除当前光标所在的word(包括空白字符)

dG 删除当前行至文件尾的内容

dgg 删除当前行至文件头的内容   (用"c"命令代替"d"这些命令就都变成更改命令)

 

~ 改变当前光标下字符的大小写, 并将光标移至下一个字符. 这不是一个操作符命令(除非你设置了°tildeop° 3选项), 所以你不能让它与一个位移命令搭配使用. 但它可以在Visual模式下改变所有被选中的文本的大小写.

I 将光标置于当前行第一个非空白字符处并进入Insert模式

A 当光标置于当前行尾并进入Insert模式

posted @ 2008-01-29 23:19  moonz-wu  阅读(1915)  评论(0编辑  收藏  举报