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码从48到57的那些字符, 即0到9. "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,dos或mac,++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 "启动时就指定要编辑的多个文件,使用next,next!或wnext转到下一个文件,使用pervious或wpervious转到上一个文件,使用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,可以使用CTRL-W来切换当前窗口,使用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 (小)把放入缓存的内容放到当前光标后面(提示:p即put).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模式