vim使用技巧Word格式文档下载.docx

上传人:b****6 文档编号:20819194 上传时间:2023-01-25 格式:DOCX 页数:36 大小:56.39KB
下载 相关 举报
vim使用技巧Word格式文档下载.docx_第1页
第1页 / 共36页
vim使用技巧Word格式文档下载.docx_第2页
第2页 / 共36页
vim使用技巧Word格式文档下载.docx_第3页
第3页 / 共36页
vim使用技巧Word格式文档下载.docx_第4页
第4页 / 共36页
vim使用技巧Word格式文档下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

vim使用技巧Word格式文档下载.docx

《vim使用技巧Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《vim使用技巧Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。

vim使用技巧Word格式文档下载.docx

因为第二部分经常用到这个概念,所以在此说一下

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

#基础

*#g*g# 

 

:

寻找光标处的狭义单词()(前向/后向)

:

括号配对寻找{}[]()

matchit.vim 

使得%能够配对标记 

等等

插入模式下的单词自动完成

行自动完成(超级有用)

把狭义单词 

写到搜索命令行

把广义单词 

setignorecase 

搜索时忽略大小写

syntaxon 

在Perl,HTML,PHP等中进行语法着色

hregexp 

按下control-D键即可得到包含有regexp的帮助主题的列表

(使用TAB可以实现帮助的自动补齐)

#使更新_vimrc更容易

nmap,s:

source$VIM/_vimrc

#译释:

nmap是绑定一个在normal模式下的快捷键

nmap,v:

e$VIM/_vimrc

在normal模式下,先后按下,s两个键执行_vimrc,而,v则是编辑_vimrc

#visual模式(例子是:

轻松添加其他的HTMLTags)

vmapsb"

zdiz 

在visual模式下选中的文字前后分别加上和

vmap是绑定一个在visual模式下的快捷键

原理:

在visual模式下,"

zd把一个选中的区域命名为z然后删除,

#i进入插入模式,输入,z撤销刚才的删除,然后再写入,

#最后返回normal模式

"

z命令创建一个选中的区域为register,并把它命名为z

更令人开心的有:

在visual模式下选中几行,然后输入2>

则选中的行会全部缩进两个tab

555,偶一开始还是用:

xx,xxs/^/\t\t/,好傻啊!

vmapst"

zdiz?

>

在visual模式下选中的文字前后分别加上和?

#文件浏览

Ex 

开启目录浏览器,注意首字母E是大写的

Sex 

在一个分割的窗口中开启目录浏览器

ls 

显示当前buffer的情况

cd.. 

进入父目录

args 

显示目前打开的文件

lcd%:

p:

更改到当前文件所在的目录

lcd是紧紧改变当前窗口的工作路径,%是代表当前文件的文件名,

#加上:

p扩展成全名(就是带了路径),加上:

h析取出路径

autocmdBufEnter*lcd%:

自动更改到当前文件所在的目录

autocmd指定一个自动命令,BufEnter指定一个事件,*指定事件的对象,

#lcd%:

h指定一个动作

#hehe,好像和写记叙文差不多

#缓冲区(buffer)浏览器(第三方的一个最流行的脚本)

#需要下载bufexplorer.vim,http:

//www.vim.org/script.php?

script_id=42上就有

\be 

在缓冲区浏览器中打开缓冲区列表

\bs 

以分割窗口的形式打开缓冲区浏览器

#大小写转换

guu 

行小写

gUU 

行大写

g~~ 

行翻转(当然指大小写啦)

g是大小写转换命令(greate),u/U/~是三种转换形式(小写/大写/翻转),

#最后一个重复则表示该转换是对于一行而言的

guw 

字大写(狭义字)译注:

建议对比iw

gUw 

字小写(狭义字)

g~w 

字翻转(狭义字)

最后一个w表示该转换是对于一个字而言的,由于是在normal模式下,

#所以这个w表示一个狭义字

vEU 

字大写(广义字)

vE~ 

字翻转(广义字)

vE这个指令组合会进入visual模式,然后选择一个广义字

ggguG 

把整个文章全部小写(ft!

bt!

gf 

取当前光标处的广义字作为文件名,然后试图打开它!

为什么是广义字呢?

因为这样可以方便的取到路径啊,像/var/www/html/index.htm

ga 

显示光标处字符的ascii,hex,oct,...晕菜的一堆转换

ggVGg?

用rot13编码整个文件(晕!

gg到文件首行首字符,V进入Visual-Line模式,G到文件末行首字符,

这样就选中了整篇文章,然后g?

就是用rot13编码整个文件啦

#

#【关于rot13——谁让英文是偶数个字母啊】

#ROT13是一种简单的编码,它把字母分成前后两组,每组13个,编码和解码

#的算法相同,仅仅交换字母的这两个部分,即:

[a..m]-->

[n..z]和[n..z]

#-->

[a..m]。

ROT13用简易的手段使得信件不能直接被识别和阅

#读,也不会被搜索匹配程序用通常的方法直接找到。

经常用于USENET中发表一

#些攻击性或令人不快的言论或有简单保密需要的文章。

#由于ROT13是自逆算法,所以,解码和编码是同一个过程。

 

增加,减少光标处的狭义字所表示的数字

(,仅仅是分割了这两个命令,不是命令的一部分)

Win32的用户可能需要重新定义一下Ctrl-A,呵呵

#译注:

goodguy,令人不得不想到perl的数字串

=5*5 

插入25(这是一个迷你计算器耶!

#好玩的东东

h42 

也可以访问

第一个结果就是News.DouglasAdams1952-2001.

Floor42extendsitsdeepestsympathiesto

thefamily,friends,andfansofDouglasAdams.

hholy-grail

h!

#标记和移动

'

跳到最后修改的那一行(超级有用)(ft,怎么又是这个评价)

`. 

不仅跳到最后修改的那一行,还要定位到修改点

依次沿着你的跳转记录向回跳(从最近的一次开始)

依次沿着你的跳转记录向前跳

ju(mps) 

列出你跳转的足迹

helpjump-motions

history 

列出历史命令记录

hisc 

命令行命令历史

hiss 

搜索命令历史

q/ 

搜索命令历史的窗口

q:

命令行命令历史的窗口

历史命令记录的窗口

#缩写和键盘映射(原文中文件举例都用了c:

/aaa/x,偶全给他改成/path/file了,哼唧)

map 

a,'

bw!

/path/file

map是映射一个normal模式下的键

#这里是把F7键映射成把标记a到标记b中间的内容另存为一个文件/path/file

#标记(mark)的方法:

把光标移动到需要标记的地方,输入m,然后输入标记名,例如a

#引用标记的方法:

a,即:

单引号加标记名

r/path/file

把F8键映射成在当前位置插入文件/path/file的内容

.w!

/path/file2

.(点号)表示当前行

#所以F11就是把当前行存为/path/file2

#最后的表示一个回车

r/path/file2

abphp 

列出php表示的缩写

定义一个缩写使用:

iabhmhmisty

#一个有趣的现象是,它列出的会是php和它的前子串开头的缩写

#例如,有这么几个缩写:

#h=>

hmisty1,hm=>

hmisty2,hmi=>

hmisty3,m=>

hmisty4

#那么使用:

abhm会显示这么几个缩写:

hm和h

#而不是你想象中的hm和hmi

map, 

列出以逗号开始的键盘映射

一般而言,我们称这些逗号开始的组合键为“逗号命令”

#不过hmisty更喜欢用;

构成“分号命令”

#而且不是用map,而是用imap

#因为偶懒么,懒得按,所以直接在insert模式下就执行命令了

#为什么用分号呢?

因为我最常用它写程序啊

#perl/C/C++/objectpascal/java,都是用分号结束一个语句

#我们一般很少在分号后面连续写其他字符

#所以用“分号+其他键”就很少会在输入的时候造成冲突

#在键盘映射中常用的表示

回车

Esc

转义符号\

管道符号|

#列出寄存器(Registers)

reg 

显示所有当前的registers

1p 

"

表示引用register,1表示一个名字叫做1的register,

p就是粘贴(paste)命令

也用来定义register

#先输入"

表示定义register

#然后输入名字,如0~9,a~z

#然后执行删除或复制命令,如dd或y,

或者是visual模式下的d(删除选中的部分)或y(复制选中的部分)

#则被删除或复制的部分就被存入了这个命名的register

#

#观察:

一个特殊的register,"

,里面存储了一个匿名的删除/复制

#在你执行dd或y的时候,被作用的部分被存到了"

#这些和perl是多么像啊

#Usefultrick

ayy@a 

把当前行作为一个Vim命令来执行

ayy是定义当前行到registera,然后@a是执行registera中存储的指令

#yy:

复制一行

#10yy:

复制从此向下的10行

yy@"

用上面所提到的那个匿名register

#从其他程序获取输出(需要外部程序)

r!

ls.exe 

读取ls的输出到当前位置

!

date 

读取date的输出(但是会替换当前行的内容)

其实你输入了!

后,vim就自动转换到:

.!

等待你继续输入

#使用外部程序sort进行排序(sort是Unix标准命令,ls,date也是)

%!

sort-u 

使用sort程序排序整个文件(用结果重写文件)

%表示整个文件的所有行

#!

sort表示执行外部命令sort

#-u是sort的参数,mansort看看,这个参数的意义是合并相同的行

#u就是unique,如果两行内容相同,则结果中只保留一行的说

b!

对marka到markb中间的内容进行排序

1}sort-u 

排序当前段落(只能在normal模式下使用!

表示使用filter,1}表示filter的对象是从当前行开始向后数一段

#段落指到空行处结束,不包括空行

#其实你一旦输入!

1},vim就自动计算当前段落应该到那一行(eg.+5),然后生成

#:

.,.+5!

等待之后输入sort-u,回车,完成操作

#.表示当前行,.+5当然就是当前行向后数5行

#多文档操作(基础)

用:

ls!

可以显示出当前所有的buffer

bn 

跳转到下一个buffer

bp 

跳转到上一个buffer

wn 

存盘当前文件并跳转到下一个(又是“超级……”,ft!

wp 

存盘当前文件并跳转到上一个

bd 

把这个文件从buffer列表中做掉

bun 

卸掉buffer(关闭这个buffer的窗口但是不把它从列表中做掉)

baddfile.c 

把文件file.c添加到buffer列表

b3 

跳到第3个buffer

bmain 

跳到一个名字中包含main的buffer,例如main.c

(ultra,这个怎么翻译?

()

savphp.html 

把当前文件存为php.html并打开php.html

sav!

%换一个后缀保存

e!

返回到修改之前的文件(修改之后没有存盘)

w/path/% 

把文件存到一个地儿

e# 

编辑标记为#的buffer(这个buffer必须含有一个可编辑的文件)

用ls命令就能看到哪一个buffer有#

%a表示当前正在编辑的buffer

u表示不能编辑或者已经被做掉的buffer

e#3 

编辑编号为3的buffer(这个buffer必须含有一个可编辑的文件)

rew 

回到第一个可编辑的文件

brew 

回到第一个buffer

spfred.txt 

在一个水平分割的窗口中打开文件fred.txt

vsfred.txt可以实现垂直分割

sball 

把当前所有含有可编辑文件的buffer显示到一个分割窗口中

(偶该考虑把super翻译成高级指令了,ft)

ls:

e#:

在normal模式下按F5键,则会显示所有含有一个

可编辑文件的buffer,然后提示你输入buffer的序号,

输入后回车,则编辑这个buffer

这是一个键盘绑定

sethidden 

允许不保存buffer而切换buffer(w/o=without)

#在分割窗口中快速切换

j_

原文此处有误,前面应该加上冒号

#这是一个键盘绑定,把Ctrl-J定义成切换到下一个窗口并最大化

k_

#命令录制(最佳技巧,ft)

qq 

#录制到q

...#输入一系列复杂的指令

#再次按q停止录制

@q 

#执行q中存储的指令

@@ 

#重复执行

#编辑register/录制

ap#把registera中的内容贴到当前位置

...#现在你可以修改它了

add#删除之,重新存入registera

@a 

#执行registera中的指令

#_vimrc基础

setincsearch 

实时匹配你输入的内容

setwildignore=*.o,*.obj,*.bak,*.exe:

tab键的自动完成现在会忽略这些

setshiftwidth=4 

现在自动缩进将是4个字符

一个tab位通常是8个字符

#所以,我们还要设定:

settabstop=4,这样,所有的缩进都是4字符了

#emacs默认就是4字符缩进吧?

setvbt_vb="

沉默方式(不要叫beep!

#加载windowsiexplorer来浏览(我想这只有在windows下用gvim才能用到)

nmap,f:

update:

silent!

startc:

\progra~1\intern~1\iexplore.exefile:

//%:

p

nmap是做一个normal模式下的键盘绑定

#这里绑定了一个逗号命令,f

update是写这个文件,与:

w不同,它只有当文件被修改了的时候才写

silent别让弹出窗口报告执行结果

...后面就是执行windows命令了。

呵呵,去问billgates什么意思吧。

#不过偶用gvim6.1试过了,好用!

nmap,i:

!

\progra~1\intern~1\iexplore.exe

#用VIM编辑ftp文件

cmap,r 

Nreadftp:

//209.51.134.122/public_html/index.html

cmap,w 

Nwriteftp:

原文丢失了开头的冒号

#cmap是命令(command)模式绑定

gvimftp:

#这一句就是开始编辑一个ftp远端的文件,ft

#附加到一个register(就是用大写的register名字啦!

a5yy#复制5行到a中

10j 

#下移10行

A5yy#再添加5行到a中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1