vim实用集合

 

------------- vim 多文件 编辑

------------- vim 多窗口功能






==================  VIM自定义格式

Vim的配置一般用到两个文件:/etc/vimrc和各个普通用户家目录下的~/.vimrc
前者是全局设置,即设置成功后,对所有用户生效;后者是对某一个用户生效。通常设置后者的情况较多,以免影响其他用户的使用,毕竟每个人的习惯不同。


#vim /etc/vi
以下内容追加到此文件的后面

set nu #自动显示行号;
set tabstop=4 #一个tab键所跨过的空格数,通常为4,本人以为2挺合适;
set shiftwidth=4 #当行之间交错时使用4个空格;
set showmatch  #设置匹配模式,当属于一个左括号时会匹配相应的那个右括号;
set vb t_vb=  #去掉错误警告时的提示音;
set incsearch #动态匹配查找的字符;
set autoindent #启用自动对齐功能,把上一行的对齐格式应用到下一行;
set smartindent #依据上面的格式,智能的选择对齐方式,对于类似C语言编写很有用处;
set ruler #在Vim窗口的右下角显示当前光标位置;
set cursorline #光标所在的行出现一条白色的线,更容易找到光标的所在位置;
set hlsearch  #高亮显示匹配的字符;临时关闭用”:set nohlsearch”
set nocompatible #去掉有关vi一致性模式,避免以前版本的一些bug和局限;
set history=1000 #记录历史的行数;
filetype on #检测文件的类型;
syntax on #语法高亮显示;
if has("vms")
         set nobackup
else
         set backup
endif 

--------

set nu
set tabstop=4
set shiftwidth=4
set showmatch
set vb t_vb=
set incsearch
set autoindent
set smartindent
set ruler
set cursorline
set hlsearch
set nocompatible
set history=1000
filetype on
syntax on
if has("vms")
    set nobackup
else
    set backup
endif

-------


在~/.vimrc中设置方法上面一样,如果没有该文件则手动创建一个。
以上配置文件设置完成后通常重启之后才能生效,若要其立即生效,输入如下命令:
source  /etc/vimrc  这样只对当前的终端中生效。


 


=================== vimrc

cp /usr/share/vim/vimXX/vimrc_example.vim  ~/.vimrc



vim自带的示例vimrc中,只定义最基本的配置。
在http://www.amix.dk/vim/vimrc.html有一个非常强大的vimrc,有人戏称为”史上最强的vimrc”,或许有些言过其实。不过,如果你通读了这个vimrc,相信能从中学到很多……

http://blog.csdn.net/redguardtoo/archive/2006/09/03/1172136.aspx这里有一个redguardtoo修改过的版本,可以对照参考一下。





无论在windows还是在linux中,我都使用vim作为我的缺省编辑器。并且,我想使用同一个vimrc文件。因此,我定义了一个MySys()函数,用来区分不同的平台,以进行不同的配置。












================== 防止VIM粘贴数据时断行


在vim编辑文件中,如果想粘贴较大长度的一行字符串时,经常会出现自动折行的情况,其实很简单,只需修改 /etc/vimrc,修改一个选项:

if has("autocmd")
" In text files, always limit the width of text to 78 characters
"  autocmd BufRead *.txt set tw=78
autocmd BufRead *.txt set tw=200

看到上面的注释了吧,把tw从78改成200甚至更大就行了。


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

:set nu  显示行数

设置number选项。:set number显示行号,:set nonumber关闭显示行号。

nG  跳转命令。n为行数,该命令即时使光标跳到指定行。

Ctrl+G 光标所在位置的行数和列数报告。

Ctrl+e光标下移一行同事屏幕下拉

 

 

“u”命令撤销上一个编辑操作

ctrl-r(redo)重做操作 回退前一个命令。换句话说,它撤销一个撤销


yy  拷贝一行到剪贴板或

p取出剪贴板中内容的命令

 

Ctrl +f: 向前滚动一页
Ctrl +b:向后滚动一页

ctrl + d 删除光标所在位置上的字符
ctrl + u 删除光标前面所有字符
ctrl + y 恢复ctrl+u 上次执行时删除的字符
ctrl + ? 撤消前一次输入
ctrl + a 将光标移动到命令行开头
ctrl + e 将光标移动到命令行结尾处
ctrl + x 在上次光标所在字符和当前光标所在字符之间跳转
alt + u 把光标当前位置单词变为大写
alt + l 把光标当前位置单词变为小写
ctrl + r 输入单词搜索历史命令
alt + p 输入字符查找与字符相接近的历史命令
alt + >; 返回上一次执行命令

 




在vim中,按 v,然后可以使用方向键矩形选择。然后fterm的菜单里鼠标右键里选择拷贝到剪贴板。

全选并删除:按esc后,然后dG, 或 :%d 或 :1,$d
全选并复制:按esc后,然后ggyG
全选高亮显示:按esc后,然后ggvG或者ggVG

删除光标以后内容: dG
当前行复制: yy, p 粘贴

4yy 复制4行

复制 "+y
粘贴 "+gP

 

 

到某一行:   按esc ,按冒号, 然后按行号,比如123, 然后按回车
到行首:0
到行末:$
复制:yy
贴上:p
删整行:dd
删除全部内容:dG
显示行数::set number
不显示行数::set nonumber

n: 向前重复搜索
N: 向后重复搜索

 

 

:31,36 s/^/#/  31-36行添加#符号

 

替换字符:

:%s/q_PDO__/q_PDO$$/g  全部替换q_PDO__为q_PDO$$

:%s/.../.../g

 

 

w 跳到下一个单词的开始
e 跳到单词的结束
b 向后跳
gg 跳到文件的开始
G 跳到文件的结束
:10或10gg 或10G 跳到第10行
%(跳到文件的%多少) 和|(跳到第几列)
50%

20j 向下移20行

CTRL+d,u,f,b:下移半屏,上移半屏,下移一屏,上移一屏

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:此行删至行首
d$:
此行 删至行尾 

ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

如果不保存退出,需要使用命令q!强制退出

在非i模式下 dd 删除一行

 

 

hjkl 这是代替箭头键功能的
H M L 跳到屏幕的顶上 中间 下方

w 跳到下一个单词的开始
e 跳到单词的结束
b 向后跳


 

-------------选择块 visual block

 

v 字符选择,会将光标经过的地方反白选择

V 行选择,会将光标经过的行反白选择

ctrl + v  块选择,可以用长方形的方式选择

y 复制

d 删除

p 粘贴

 

 

---------------

 

 

#alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

可增加

alias vi='vim'




-------------------

 

 

除了pageup pagedown外还有其它的快速键
如CTRL-F 向前一页 CTRL-B 向后一页
CTRL-D 向下半页

CTRL-U 向上半页我觉得更实用 这样看文章时就不会跳转出错
CTRL-E 向下一行
CTRL-Y 向上一行



删除dd
100dd  删除100行


另外还有ctrl-t ctrl-i ctrl-]

如果已经使用了ctags 或是cscope创建索引文件的话 那看代码时很是方便

 

 

 

 

 

 

 

 

1.*关于退出:*
:wq! ----强制保存退出
:wq  ---- 保存退出
:  x   ----- 作用和:wq 一样
ZZ  ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
:q  ---- 退出
:q! ---  强制退出
========================================================
2.*关于移动:*
h : 在当前行向左移动一个字符
j: 移动到下一行
k:移动到上一行
l:在当前行向右移动一个字符


:n   将光标定位到第n行
:$   将光标定位到最后一行
0    将光标定位到本行的行首
$    将光标定位到本行的行尾
G    将光标定位到本文章的最后一行,与:   $功能相同。
H    将光标定位到屏幕的顶端
M    将光标定位到屏幕的中间
L     将光标定位到屏幕的底端
=============================================================
3.*关于搜索:*
/: 后面跟要查找的东西,在文件中向前搜索
?:后面跟要查找的东西,在文件中向后搜索
n: 向前重复搜索
N: 向后重复搜索
=============================================================
4.*关于复制*
yy: 复制光标当前行
nyy: 复制光标当前行到当前行以下的n-1行
:1,100 co 200 将1~100的内容复制到第200行。
:100,102 co $ 将100~102行的内容复制到最后一行。
==============================================================
5.*关于粘贴:*
p :   粘贴到当前行的下一行
P(大) :   粘贴到当前行的 上一行

==============================================================
6.*关于删除.剪切:*
dd  删除当前行
ndd  与nyy相似
dw  删除一个单词
ndw  与ndd相似
x    删除一个字符
nx   删除n个字符
dG   删除当前光标到文件末尾的所有内容。
d0   删除当前光标到本行行首的所有内容
d$   删除当前光标到本行行尾的所有内容

:1,100d  删除1~100
:100d    删除第100行
:1,100 mo $  将1~100行的内容移动到最后一行。
======================================================
7.*关于插入:*
i:  在当前位置的字符前面进入插入模式
I: 在当前行的开头进行插入
a: 在当前位置的字符后面进入插入模式
A: 在当前行的结尾进行插入
o:  在当前行下面打开一个新行进行插入
O:在当前行上面打开一个新行进行插入
======================================================
8.*关于撤销:*
u: 撤销上一次的更改
=======================================================
9.*关于替换:
r*egexp:是要匹配的式样
replacement: 是要替换的字符串*
*:s /regexp/replacement  -------------------------替换当前行出现的第一个式样
:s/regexp/replacement/g-------------------------替换当前行所有的匹配
:%s/regexp/replacement/g-----------------------替换文件中所有匹配式样
==========================================================

*PS: 还有一个重要的命令就是"." 命令,这个命令是用来重复上一命令的*

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值