Vi使用教程二资料Word格式文档下载.docx

上传人:b****4 文档编号:17382968 上传时间:2022-12-01 格式:DOCX 页数:11 大小:24.59KB
下载 相关 举报
Vi使用教程二资料Word格式文档下载.docx_第1页
第1页 / 共11页
Vi使用教程二资料Word格式文档下载.docx_第2页
第2页 / 共11页
Vi使用教程二资料Word格式文档下载.docx_第3页
第3页 / 共11页
Vi使用教程二资料Word格式文档下载.docx_第4页
第4页 / 共11页
Vi使用教程二资料Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Vi使用教程二资料Word格式文档下载.docx

《Vi使用教程二资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Vi使用教程二资料Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

Vi使用教程二资料Word格式文档下载.docx

★<

C-N>

<

C-P>

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

C-X>

C-L>

行自动完成(超级有用)

设置ctags

#ctags-f/usr/share/vim/vim63/funcs.tags-R/opt/j2sdk/src/usr/src/kernels/2.6.9-5.EL-i686

^p自动补齐上下文已有相近项

^n自动补齐~/.tags中的相近函数

^[显示~/.tags中的光标下的函数的原型,

按^t退出函数

pta函数名预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头

K显示光标下的C函数的man说明手册

变量定位

gd转到光标下局部变量的定义处

Gd转到光标下全局变量的定义处

编译选项

cn命令会把你带到下一个出错地点,而不考虑它在什么文件里。

cc命令会向你显示当前错误的编译器输出信息;

cl会生成一个列有项目所有错误的列表,以供浏览这些错误

3]光标移动

h光标左移一个字符。

l光标右移一个字符。

w或W光标右移一个字至字首。

B或b光标左移一个字至字首。

E或e光标右移一个字至字尾。

}光标移至句尾。

(光标移至句首。

)光标移至段落开头。

{光标移至段落结尾。

k或Ctrl+p光标上移一行。

j或Ctrl+n光标下移一行。

Enter光标下移一行。

nG光标移至第n行首。

n+光标下移n行。

n-光标上移n行。

n$光标移至第n行尾。

0光标移至当前行首。

$光标移至当前行尾。

H光标移至屏幕顶行。

M光标移至屏幕中间行。

L光标移至屏幕最后行。

Ctrl+u向文件首翻半屏。

Ctrl+d向文件尾翻半屏。

Ctrl+f向文件尾翻一屏。

Ctrl+b向文件首翻一屏。

nz将第n行滚至屏幕顶部。

不指定n时将当前行滚至屏幕顶。

4}插入

#在文件中插入行号(不是显示行号,是插入!

★:

g/^/exec"

s/^/"

.strpart(line("

."

)."

"

0,4)

光标

i在光标前插入。

a在光标后插入。

I在当前行首插入。

A在当前行尾插入。

o在当前行之下一新行插入。

O在当前行之上新开一行插入。

5)替换

r替换当前字符。

R替换当前字符及其后的字符,直至按ESC键。

s从当前光标位置处开始,以输入的文本代替指定数目的字符。

S删除指定数目的行,并以所输入的文本代替。

6)修改

ncw或nCW修改指定数目的字符。

nCC修改指定数目的行。

rfilename将文件filename插入在当前行之下

7)查找替换

/<

C-R>

C-W>

把狭义单词<

cword>

写到搜索命令行

C-A>

把广义单词<

cWORD>

g/str/s/str1/str2/g

第一个g表示对每一个包括s1的行都进行替换,

第二个g表示对每一行的所有进行替换

包括str的行所有的str1都用str2替换

%s/f$/for$/g将每一行尾部的“f”(f键和空格键)替换为for

%s/^/mv/g在每一行的头部添加“mv”(mv键和空格键)

s/fred/<

c-r>

a/g替换fred成registera中的内容,呵呵

g/<

input|<

form/p显示含<

input或<

form的行

#替换一个visual区域

#选择一个区域,然后输入:

s/Emacs/Vim/等等,vim会自动进入:

模式

'

'

s/Emacs/Vim/g前面的'

是vim自动添加的

#在多个文档中搜索

bufdo/searchstr

argdo/searchstr

复制与剪切

xp交换前后两个字符的位置

ddp上下两行的位置交换

g/fred/t$拷贝行,从fred到文件末尾(EOF)

9)窗口操作

vne[filename]

sp[filename]

S[filename]

new[filename]

^w+^r交换两个窗口的位置

^w=窗口等宽

res-n窗口高度减小n

res+n窗口高度增大n

vertres-n

vertres+n

10)DOS格式文本转成Unix格式文本

1,$s/^M//g

11)书签

在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。

将光标移到想做标记的位置。

假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。

接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。

12)删除操作

%s/r//g删除DOS方式的回车^M

%s=*$==删除行尾空白

%s/^(.*)n1/1$/删除重复行

%s/^.pdf/new.pdf/只是删除第一个pdf

%s/<

!

--_.-->

//又是删除多行注释(咦?

为什么要说「又」呢?

g/^s*$/d删除所有空行

g!

/^dd/d删除不含字符串'

dd'

的行

v/^dd/d同上(译释:

v==g!

,就是不匹配!

g/str1/,/str2/d删除所有第一个含str1到第一个含str2之间的行

v/./.,/./-1join压缩空行

g/^$/,/./-j压缩空行

ndw或ndW删除光标处开始及其后的n-1个字符。

d0删至行首。

d$删至行尾。

ndd删除当前行及其后n-1行。

x或X删除一个字符。

Ctrl+u删除输入方式下所输入的文本。

^R恢复u的操作

J把下一行合并到当前行尾

V选择一行

^V按下^V后即可进行矩形的选择了

aw选择单词

iw内部单词(无空格)

as选择句子

is选择句子(无空格)

ap选择段落

ip选择段落(无空格)

D删除到行尾

x,y删除与复制包含高亮区

dl删除当前字符(与x命令功能相同)

d0删除到某一行的开始位置

d^删除到某一行的第一个字符位置(不包括空格或TAB字符)

dw删除到某个单词的结尾位置

d3w删除到第三个单词的结尾位置

db删除到某个单词的开始位置

dW删除到某个以空格作为分隔符的单词的结尾位置

dB删除到某个以空格作为分隔符的单词的开始位置

d7B删除到前面7个以空格作为分隔符的单词的开始位置

d)删除到某个语句的结尾位置

d4)删除到第四个语句的结尾位置

d(删除到某个语句的开始位置

d)删除到某个段落的结尾位置

d{删除到某个段落的开始位置

d7{删除到当前段落起始位置之前的第7个段落位置

dd删除当前行

d/text删除从文本中出现“text”中所指定字样的位置,

一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

dfc删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

dtc删除当前行直到下一个字符“c”所出现位置之间的内容

D删除到某一行的结尾

d$删除到某一行的结尾

5dd删除从当前行所开始的5行内容

dL删除直到屏幕上最后一行的内容

dH删除直到屏幕上第一行的内容

dG删除直到工作缓存区结尾的内容

d1G删除直到工作缓存区开始的内容

修改命令操作

r更改当前字符

cw修改到某个单词的结尾位置

c3w修改到第三个单词的结尾位置

cb修改到某个单词的开始位置

cW修改到某个以空格作为分隔符的单词的结尾位置

cB修改到某个以空格作为分隔符的单词的开始位置

c7B修改到前面7个以空格作为分隔符的单词的开始位置

c0修改到某行的结尾位置

c}修改到某个语句的结尾位置

c4}修改到第四个语句的结尾位置

c(修改到某个语句的开始位置

c)修改到某个段落的结尾位置

c{修改到某个段落的开始位置

c7{修改到当前段落起始位置之前的第7个段落位置

ctc修改当前行直到下一个字符c所出现位置之间的内容

C修改到某一行的结尾

cc修改当前行

5cc修改从当前行所开始的5行内容

.重复上一次修改!

13}Set选项设置

setall列出所有选项设置情况。

setterm设置终端类型。

setignorecase在搜索中忽略大小写。

setlist显示制表位(^I)和行尾标志($)。

setnumber显示行号。

setshowmode示用户处在什么模式下

setreport显示由面向行的命令修改国的行数目。

setterse显示简短的警告信息。

setwarn在转到别的文件时,若没有保存当前文件则显示Nowrite信息。

setautowrite在“:

n”和“:

”命令之前都自动保存文件

setnomagic允许在搜索模式中,使用前面不带\的特殊字符。

setnowrapscan禁止vi在搜索到达文件两端时,又从另一端开始。

setmesg允许vi显示其他用户用write写到自己终端上的信息。

autoindent(ai)noai使新行自动缩进,和上(下)行的位置对齐

autoprint(ap)ap每条命令之后都显示出修改之处

autowrite(aw)noaw在:

n,:

命令之前都自动保存文件

beautify(bf)nobf在输入的时候忽略所有的控制字符(除了制表键(tab),换行(newline),进纸(formfeed))

directory=(dir=)/tmp存放缓冲区的目录名

edcompatiblenoedcompatible在替换的时候使用类ed的用法

errorbells(eb)errorbells出错的时候响铃

exrc(ex)noexrc允许在主目录(home)外面之外放.exrc文件

hardtabs=(ht=)8设置硬制表的边界

ignorecase(ic)noic正规式里忽略大小写

lispnolisp打开lisp模式

listnolist显示所有的制表键和行的结尾

magicagic可以使用更多的正规表达式

mesgmesg允许向终端发送消息

number(nu)nonumber显示行号

openopen允许开放和可视化

optimize(opt)optimize优化吞吐量,打印时不发回车

paragraphs=(para=)IPLPPPQPPLIbp设置{&

}的分界符

promptprompt命令模式下的输入给出:

的提示符

readonly(ro)noro除非用!

号否则不准保存文件

redrawnoredraw当编辑的时候重绘屏幕

remapremap允许宏指向其他的宏

report=5如果影响的行数>

这个数的话就报告

scroll1/2window下卷屏幕时滚动屏幕的数目,同样这也是z命令输出的行数(z输出2倍滚屏的大小)

sections=SHNHHHU定义节的末尾(当使用命令[[和]]时)

shell=(sh=)/bin/sh缺省的SHELL,如果设置了环境变量SHELL的话,就使用变量

shiftwidth=(sw=)8当使用移动(shift)命令时移动的字符数

showmatch(sm)nosm显示{,},(,),[,或者]的匹配情况

showmodenoshowmode显示你处在什么模式下面

slowopen(slow)插入之后不要立刻更新显示

tabstop=(ts=)8设置制表停止位(tabstop)的长度

taglength=(tl=)0重要标记的字符个数(0表示所有的字符)

tags=tag,/usr/lib/tags定义包含标记的文件路径

term=设置终端类型

tersenoterse显示简短的错误信息

timeout(to)timeout一秒钟后键盘映射超时

ttytype=设置终端类型

warnwarn显示"

Nowritesincelastchange"

信息

window=(w=)可视模式下窗口的行数

wrapmargin=(wm=)0右边距,大于0的话最右边的单词将折行,留出n个空白位置

wrapscan(ws)ws查找到文件尾后再重头开始

writeany(wa)nowa可以保存到任意一个文件去

14}特殊字符

^匹配字符串位于行首。

$匹配字符串位于行尾。

.用在模式串中,表示任何单个字符。

在命令模式下,重复上次的命令。

*在模式串中,表示其前字符可出现任意多次。

[]用在模式串中,表示指定方位内字符,其中可用-表示一个字

符范围,用^表示不在某个范围内的字符。

ESC从插入状态转换到命令状态

^[功能同ESC

15]大小写转换

guu行小写

gUU行大写

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

guw字小写(狭义字)译注:

建议对比iw

gUw字大写(狭义字)

g~w字翻转(狭义字)

vEU字大写(广义字)

vE~字翻转(广义字)

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

bt!

16)跳转足迹'

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

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

C-O>

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

C-I>

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

ju(mps)列出你跳转的足迹

17)命令历史

history列出历史命令记录

hisc命令行命令历史

hiss搜索命令历史

q/搜索命令历史的窗口

q命令行命令历史的窗口

C-F>

历史命令记录的窗口

18]寄存器

#列出寄存器(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的时候,被作用的部分被存到了"

19}命令行

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

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

10yycopy当前行以下10行

11}排序

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

1)sort-u排序当前段落(只能在normal模式下使用!

.,+5!

sort排序当前行及以下5行

20)列操作

%s=[^]+$=&

&

=复制最后一列

%s=f+$=&

=一样的功能

%s=S+$=&

ft,还是一样

s/(.*).*)/2"

1/颠倒用:

分割的两个字段

%s(w+s+))str1:

1str2:

处理列,替换所有在第三列中的str1

%sw+)(.*s+)(w+)$:

321:

交换第一列和最后一列(共4列)

.vimrc

UseVimsettings,ratherthenVisettings(muchbetter!

).

setnocompatible

c风格的缩进

setexpandtab"

不使用tab只使用空格

setcindentshiftwidth=4

自动缩进

setai

语法

setfiletype=java

setsyntax=java

键入)、]、},显示(、[、{

setshowmatch

手工定义折叠

setfoldmethod=manual

标签文件位置

settags=/usr/share/vim/vim63/funcs.tags

在插入模式下通过按[Ctrl]N自动地将任何类、方法或者字段名补齐

setcomplete+=k

不要用声音烦我!

setvisualbell

历史

sethistory=50

显示行列位置

setruler

设置字符编码

setfileencodings=gb2312

setencoding=euc-cn

设置ruler

显示当前命令

setshowcmd

incsearch

setincsearch

allowbackspacingovereverythingininsertmode

setbackspace=indent,eol,start

自动检测文件类型

filetypeon

快捷键定义"

ifversion>

=600

查找

map<

C-H>

/

查找函数原型

yiw/^\(\s\)*\(sub\)\|\(function\)\(\s\)*<

C-r>

CR>

继续查找

F3>

n

使用<

F10>

显示类、属性、方法列表

F2>

:

Tlist<

用compiler定义的编译程序来编译当前程序

F9>

make"

%"

F11>

来进行php语法检测

php-l"

map;

w:

callFormatText()<

查找当前光标下的字

F4>

/<

endif

格式化文件"

functionFormatText()

%s/\t//g"

把\t换成4个空格

%s/*$//g"

去掉行尾空格

endfunction

显示行尾的tab和多余空格"

setlistchars=tab:

-,trail:

~

setlist

syntaxmatchTrail"

+$"

highlightdeflinkTrailTodo

functionLastMod()

ifline("

$"

)>

5

letl=5

else

letl=line("

exe"

1,"

.l."

/CnsProgCMTime/s/CnsProgCMTime.*/CnsProgCMTime"

.strftime("

%Y-%m-%d%H:

%M:

%S"

/e"

F5>

callLastMod()<

自动加注释的*星号"

使用如/*...*/的注释时,r在插入模式下回车时插入*;

o在普通模式下,使用"

o"

或"

O"

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

当前位置:首页 > 表格模板 > 表格类模板

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

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