Vim 笔记

发现以前记得很清楚的命令也变得模糊了,总是在需要用到的时候不能及时地想起来。我将自己会用到的命令记录在此,基本的移动和搜索以及正则表达式就不记录了,其它的只要是用过,哪怕只是一遍。

首先是自己Vim的全局配置:

set showmode         显示当前的模式

set number               显示行号

set nocompatible    使用Vim改进的兼容模式

set fileencodings=ucs-bom,utf-8,cp936

Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。另外ucs-bom是指“ucs with byte-order-mark”,如果要使用这个编码,不能放在utf-8编码的后面。

set fileencoding=utf-8

Vim 中当前编辑文件的字符编码方式,Vim保存文件时也会将文件保存为这种编码的方式

set encoding=cp936

Vim 内部使用的字符编码方式,包括Vim 的缓冲区、菜单文本、消息文本等。用户手册上建议只在.vimrc中改变它的值,事实上似乎也只有在.vimrc中改变它的值才有意义。另外在Windows里把cp936编码映射到GBK编码上了。

set guifont=consolas:h12     设置字体

set sw=4                   设置自动缩进时的空格个数

set ignorecase        忽略大小写

set ts=4                     设置<Tab>的空格数

set lbr                        不拆分单词

map <F5> :set filetype=java<Enter>       映射<F5>键,设置当前文件为Java文件

set nobackup           不备份

set backspace=indent,eol,start

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

set autoindent          自动缩进

set showcmd           显示一个没有完成的命令已经完成的部分

set so=5                    当光标离窗口上下边界的最小行距为5时自动滚动

set nowrap                不要折行

set sidescroll=10     查看光标所在字符的左右10个字符的上下文

set whichwrap          设置移动到行边界时可以跨界的按键

let $DESKTOP='c:\users\*\desktop'             设置桌面的环境变量(*为用户名)

map <C-m> :call CalCharCount()<cr>        映射命令ctrl+m调用统计字符个数的函数

统计字符个数的函数:

if !exists("*CalCharCount")
    function CalCharCount()
        exe '%s/\S/&/gn'
    endfunction
endif

其次是常用的快捷键:

CTRL-f     屏幕向下移动一页

CTRL-b     屏幕向上移动一页

CTRL-]                       跳转到标签

CTRL-T                      弹出标签

CTRL-O                     跳转到较早的位置

CTRL-G                     文件当前位置信息

CTRL-U                     文本向下滚动半屏

CTRL-D                     文本向上滚动半屏

CTRL-O                     跳回更早之前的位置

CTRL-I                       跳回后来更新的位置

H                                 移动到屏幕第一行

M                                 移动到屏幕中间

L                                  移动到屏幕最后一行

zz                                当前位置置于屏幕中央

zt                                 当前位置置于屏幕顶端

zb                                当前位置置于屏幕底端

*                                  取当前光标所在的word,并将它作用目标字符串进行搜索

#                                 *的反向版

``                                 跳回

ma                              在屏幕上定义一个标记a,用于跳转(大写代表全局标记)

`a                   跳转到标记a所在的行和列

'a                   跳转到标记a所在的行头

x                                 代表dl(删除光标下的字符)

X                                代表dh(删除光标前的字符)

D                               代表d$(删除光标到行尾的内容) 

C                               代表c$(修改到行尾的内容)

s                                代表cl(修改一个字符)

S                                代表cc(修改整行)

r                                  替换一个字符,并回到normal模式

.                                  重复上一次做出修改的命令

o                                 visual模式下,让光标置于被选文本的另一端

O                                矩形文本选择时,将光标置于同一行的左右两个角

p                                 将删除的内容取回,放在下一行或者光标后

p                                 p的反向版,取回后放在前一行或者光标前

q{a-z}                         命令记录,q为结束,@{a-z}为执行,@@执行上一次的命令记录

"*yy                             将一行内容复制到剪贴板

"*p                              将剪贴板的内容复制过来

"fyas                           复制一个句子到寄存器f中

"fp                               取出寄存器f中的内容

"wdaw                        删除一个word并把它放到寄存器w中

daw                            当光标在一个词的中间时,用于将词删除 aw(a word)

das                             删除一个整句 as(a sentence)

cis                              修改一个整句 is(insert sentence)

~                                 改变当前字符的大小写,并将光标置于下一个字符

I                                  将光标置于当前行第一个非空白字符,并进行insert

A                                 将光标置于当前行尾,并进行insert

经常用到的命令:

:help pattern<CTRL-D>                         同时列出所有匹配'pattern'的帮助主题

:helpgrep pattern                                    在所有帮助文件中搜索'pattern',并且定位到第一个匹配的位置

:cn                  下一个匹配项

:cprev? :cN   上一个匹配项

:cfirst :clast   第一个和最后一个匹配项

:set matchpairs        设置匹配的括号

:set ruler                     在右下角显示当前光标的行列位置

:set hlsearch              高亮显示搜索结果

:nohlsearch                取消当前的高亮显示

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

:set nowrapscan       会使搜索过程在文件结束(或开始)时就停止

:scriptnames              用于找到Vim的所有启动文件

:jumps                         列出曾经跳转到的位置列表

:marks                         列出标记列表

:set iskeyword&         设置选项值为默认值

:set iskeyword            设置一个单词中可以包含的字符(@代表所有字母)

:set list                         显示制表符

:set cmdheight           设置信息显示区的高度

:set filetype                  设置当前编辑的文件类型

:syntax enable      开启语法高亮

:syntax clear          暂时关闭语法高亮

:syntax off              彻底关闭语法高亮

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

:write >> log                将当前文件的内容追加到log文件的最后

:file file                         重命名当前编辑的文件

:[高度]split  [其他文件]  将窗口分隔为上下两个窗口,并定位到上面的窗口中

CTRL-W         切换当前活动窗口

:close             关闭当前窗口,可以阻止关闭最后一个窗口

:only                关闭除当前窗口以外的所有窗口

:new                打开一个新的窗口 

CTRL-W+      增加当前窗口的高度(可使用命令记数)

CTRL-w-        减少当前窗口的高度(可使用命令记数)

[高度]CTRL-W_   指定固定的高度

:vsplit                            垂直分隔

:vnew               垂直分隔窗口,并打开一个新的缓冲区

CTRL-W h      到左边的窗口

                 j       到下面的窗口

                 k      到上面的窗口

                 l       到右边的窗口

                 t       到顶部窗口

                 b      到底部窗口

                 K      提升窗口

                 H      向左移动窗口

                 J       向下移动窗口

                 L       向右移动窗口

:qall                   退出所有窗口

:wall                   保存所有更改过的窗口

:wqall                 保存并退出所有窗口

:tabedit file                     在新的标签编辑文件

gt                        切换标签

:tabonly             关闭当前标签以外的所有标签

Shell命令:

vim -o file file...            为每一个文件打开一个窗口(水平分隔)

vim -O file file...            为每一个文件打开一个窗口(垂直分隔)

vim -R file                     以只读方式运行Vim,可强制保存

view file                        以只读方式运行Vim,可强制保存(Unix)

vim c:\mian.m $VIM/_vimrc   在Shell命令中启动Vim并编辑多个文件

:next                下一个编辑的文件

:wnext             先保存,再编辑下一个文件

:args               查看整个列表中的文件

:previous        上一个编辑的文件

:wprevious     先保存,再编辑上一个文件

:last                 移到最后一个文件

:first                 移到第一个文件

:2next              跳过两个文件

:set autowrite     每当需要的时候保存文件

noautowrite

:args *.txt        重新定义文件列表

CTRL+^          两个文件中快速切换


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值