当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪vim自动补全的方法总结与应用      这里输入以后,光标在括号内部。   代码如下: :inoremap ( ()<ESC>i  :inoremap ) <c-r>=ClosePair(')')<CR>  :inoremap { {}<ESC>i  :inoremap } <c-r>=ClosePair('}')<CR>  :inoremap [ []<E.........
    ▪VI常用命令汇总      很全面的vi常用命令,学习vi的朋友有福了,哈~~~ 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并.........
    ▪vim/vi中\n只能被替换或删除 \r只能用来插入或替换      有关vim/vi中的\n与\r选项,\n只能被替换或删除 \r只能用来插入或替换。 %s/$/\r/g %s/\n//g 在Linux 中,"\n"代表换行符,"\r"代表回车符。 %s .... /g 这样的搜索替换格式只能保证你在一行中被多次替.........

[1]vim自动补全的方法总结与应用
    来源: 互联网  发布时间: 2013-12-24

这里输入以后,光标在括号内部。
 

代码如下:
:inoremap ( ()<ESC>i 
:inoremap ) <c-r>=ClosePair(')')<CR> 
:inoremap { {}<ESC>i 
:inoremap } <c-r>=ClosePair('}')<CR> 
:inoremap [ []<ESC>i 
:inoremap ] <c-r>=ClosePair(']')<CR> 
:inoremap < <><ESC>i 
:inoremap > <c-r>=ClosePair('>')<CR> 
 
function ClosePair(char) 
if getline('.')[col('.') - 1] == a:char 
return "/<Right>" 
else 
return a:char 
endif 
endif 

或者用下面的方法也可以实现相同的效果,并且代码更简单,同样也是粘贴到~./vimrc
 

代码如下:
inoremap ( ()<ESC>i 
inoremap [ []<ESC>i 
inoremap { {}<ESC>i 
inoremap < <><ESC>i 

在使用大括号时,输入{然后快速的按enter(换行符,那么就可以得到如下的结果;
{
   从这里开始
}

自动补全1:
Ctrl+p和Ctrl+n

举例如下:
先在你正在输入一行:
$total=$ch_arrary[1]+ 

然后在vim中按“Ctrl+p”就会出现出现两个选项,$total和$ch_arrary这两个选项,你可以在这两个选项中再按ctrl+p进行选择。
同样的道理,ctrl+n也是一样的。

自动补全的vim选项:

1:忽略大小写“:set ignorecase
在这里,开启这个选项后,如果你准备补全ins那么INSERT,InSide或则instep等都会最为候选。

2:大小写区分”:set infercase"
同样的,如果你准备补全ins那么就有instep,inside,insert等这样的词。
最基本的用法就是这些。当然还有很复杂的设计。


    
[2]VI常用命令汇总
    来源: 互联网  发布时间: 2013-12-24

很全面的vi常用命令,学习vi的朋友有福了,哈~~~

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。


    
[3]vim/vi中\n只能被替换或删除 \r只能用来插入或替换
    来源: 互联网  发布时间: 2013-12-24

有关vim/vi中的\n与\r选项,\n只能被替换或删除 \r只能用来插入或替换。

%s/$/\r/g
%s/\n//g
在Linux 中,"\n"代表换行符,"\r"代表回车符。

%s .... /g 这样的搜索替换格式只能保证你在一行中被多次替换,但是一旦你插入了一个行结束符(\n),这个行会中止,当前行不再继续进行替换,因此你显然不能替换为 \n 这样的字符,这样会造成当前行不继续产生后续替换。

至于你能够把 \n 作为搜索 pattern 这显然是允许的。

在模式中使用的是“\n”,而被替换的内容中却不能
使用“\n”,而只能使用“\r”。原因是历史造成的,详情如果有兴趣的话可以查看“:help NL-used-for-Nul”。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3