Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10707
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 61
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-24 17:40
文章分类

全部博文(6)

文章存档

2014年(6)

我的朋友
最近访客

分类: 系统运维

2014-08-24 23:15:57

转载:http://blog.sina.com.cn/s/blog_6c090c5d0101c2nv.html
经过一些格式整理

打开窗口

&vim
:new  name      新开窗口,如果保存的话文件名就是name
:split                横向切割窗口
:vsplit               纵向切割窗口
&shell
vim -o file1 file2 ...   水平打开多个窗口
vim -O file1 file2 ...  垂直打开多个窗口
vim -d file1 file2 ...   垂直打开多个窗口并且进行比较
vimdiff file1 file2 ...  垂直打卡多个窗口并且进行比较

关闭窗口

&vim
:q / :close    关闭当前窗口
:only           保留当前窗口
:qall            退出所有窗口
:wall           保存所有窗口

切换窗口

&vim
:ctrl w h/j/k/l 分别进行左下上右切换, 或者将hjkl换为上下左右键
:ctrl w 进行依次切换

调整窗口

&vim
ctrl w +    行数增加
ctrl w -     行数减少
n ctrl w + 行数增加n行
n ctrl w -  行数减少n行

ctrl w >    列数增加
ctrl w <    列数减少
n ctrl w >    列数增加n
n ctrl w <    列数减少n

:res num    设置行数为num
:res +num  增加num行
:res -num   减少num行

:vertical res n  设置列数为n
:vertical res +n    增加n列
:vertical res -n    减少n列

ctrl w =  让所有的窗口适中
ctrl w |    调整为最大宽度
ctrl s _    调整为最大高度

ctrl w H/J/K/L  分别移到最边缘

命名窗口

&vim
:f file    给窗口重命名,那么在保存的时候会生成一个同窗口同名的新文件

多窗口编辑

#水平分割
:sp    当前编辑的文件,分割到一个窗口再打开
:sp filename    分割一个窗口,打开文件filename
:split    同sp
:new
:new filename
#垂直分割
:vsplit
:vnew
#调整窗口位置
ctrl w H/J/K/L    将当前窗口移动位置

打开多个文件

&shell
vi a b c    打开多个文件
&vim
:n    跳到下一个文件
:e#    回到刚才编辑的文件
:prev    上一个文件
:next    下一个文件
:prev!    上一个文件
:next!    下一个文件
:first    第一个文件
:last    最后一个文件
:args    显示打开的文件列表



浏览文件

&vim
:Ex    浏览当前目录下的所有文件
:Sex    水平分割当前窗口,并在当前窗口打开目录查看
:ls    显示当前的buffer情况

vim与shell切换

&vim
:shell    可以在不关闭vi的情况下切换到shell
:exit    从shell回到vi

执行shell命令

&vim
:!command    如::!pwd    :!ls

撤销重做

&vim
u, U    撤销上一次操作
:e!    撤销未保存的全部编辑,并重新载入文件
ctrl r    恢复撤销的操作

保存退出

:w    保存
:q    关闭文件
:wq    保存并且关闭文件
:q!    不保存强制退出
:qa    关闭所有文件退出

光标定位

w    下一个字首
e    下一个字尾
^    行首
$    行尾
A    行尾插入
o    添加空行

文件内查找

&vim
n, N    找到key后,n跳到后一个位置,N跳到前一个位置
*, #    光标所在处的key为关键字,精确匹配
g*, g#    光标所在处的key为关键字,模糊匹配
/key    向后模糊匹配
?key    向前模糊匹配
/\, /?\    精确匹配

批量替换

&vim
%s/要被取代的字符串/新的字符串/g

复制粘贴删除

yy    复制行
nyy    复制n行
p    粘贴
dd    删除行
ndd    删除n行
yw    复制字
dw    删除字
v, V, ctrl v    进入可视化模式, y 复制选择块

显示与编辑样式

set statusline+=%f, set laststatus=2    在状态行显示文件名,路径,行数
set nu    显示行号
set nonu    影藏行号
set list    显示断行符等特殊符号
set autoindent    自动缩进
set cindent    c样式的缩进

多行注释

ctrl v 进入列编辑模式,选中需要注释的行的开头,按下大写I, 再按下ESC

缓冲区编辑

&vim
:e filename    打开新的缓冲区看别的文件(如果你之前在同时编辑多个文件)
:e# / ctrl ^    切换最近的两个缓冲区
:buffers    显示缓冲区文件列表
:bd / :bd 1 / :bd 2    关闭其中一个
:b 1 / :b 2    切换到其中一个
:bp    切换上一个
:bn    切换下一个
ctrl w ^    让缓冲区的文件来分割窗口

保存回话

&vim
:mksession! xxx.vim(Session.vim)    保存当前的vim状态
source Session.vim    载入保存的回话
&shell
vim -S    自动载入之前的回话

配置自动保存和载入回话

在配置好之后,只需要在第一次执行    :mksession! xxx.vim,以后就直接在当前目录vim即可
~/.vimrc
" auto save and load session
let g:
let g:OrigPWD=getcwd()
if filereadable(g:AutoSessionFile)
        if argc()==0
                au VimEnter * call EnterHandler()
                au VimLeave * call LeaveHandler()
        endif
endif
function! LeaveHandler()
        exec "mks! ".g:OrigPWD."/".g:AutoSessionFile
endfunction
function! EnterHandler()
        exe "source ".g:AutoSessionFile
endfunction

热门插件

=> scripts -> browse all

ctags

yum install ctags
#创建ctags文件,在需要创建tags文件的目录下用   
&shell
ctags -R
#使用ctags
&vim
ctrl ]    当光标在函数上是,会跳到函数定义处
ctrl t    返回
:ta  functioname    跳转到函数定义出
&shell
vim -t functioname    打开时搜索并且跳转
:tnext / :tprev / :tn / :tp    多个匹配的tags时跳转

未完待续……





阅读(796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~