zl程序教程

您现在的位置是:首页 >  系统

当前栏目

【Linux】Linux中Vim基础

2023-09-14 08:56:50 时间

word转成html再搞到csdn这块,效果不是很好,表格每行显示太高........囧

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

VIM命令训练稿


目录



1.打开文件操作...1
2.存储及退出文件...2
3.模式转换...2
4.光标移动...3
5.插入...4
6.删除...4
7.复制和黏贴...5
8.查找...5
9.替换...6
10.编辑多个文件...6
11.其他命令...6
12分屏操作...7
13 vim的帮助指令...9

14.七个习惯

 

1.打开文件操作

显示文件名,当前光标所在行的行号,总的行数,以及当前行所在文件中的百分比和当前光标所在的列的信息


将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入【注意空格】例如  :1,4 w! grep tom


改变编辑中的文件名(file)

相当于复制了一个文件,执行这个命令后,新编辑不会应用于原文件


vim特殊打开文件的方法,打开光标所在处的 word 为名的文件,当然,这个文件要在当前目录内,否则会创建新文件


3.模式转换

1)命令行模式(command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

a i o进入插入模式

:进入底行模式

 

    2)插入模式(Insert mode) i/a/o/O Insert  2Insert

只有在Insert mode下,才可以做文字输入

按「ESC」键可回到命令行模式。

    3)底行模式(last line mode)Normal模式

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等,使用命令执行编辑操作等

可缩写(:setà:se)补齐(tab键的功效+CTRL-D)  历史记录(借助CTRL-UP)

/ (查找)    ?(反查)

4)     Visual模式 v / V / CTRL-v /r

 

4.光标移动

匹配括号移动,包括 (, {, [.(陈皓注:你需要把光标先移到括号上)

跳转到与之匹配的括号处


 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)


展开(空格也可以展开)

可以zf进行折叠, 用zo打开折叠,也可以方向键向右打开折叠,zc 关闭折叠(只要在被折叠的块中的任一个语句就行)???


删除当前光标所在的word(不包括空白字符),意为Delete Inner Word 两个符号之间的单词


去掉所有的行尾空格,“\s”表示空白字符(空格和制表符),“\+”对前面的字符匹配一次或多次(越多越好),“$”匹配行尾(使用“\$”表示单纯的“$”字符)


:[range]s/pattern/string/[c,e,g,i]

•   range 指的是範圍,1,7指從第一行至第七行,1,$ 指從第一行 至最後一行,也就是整篇文章,也可以% 代表 (目前編輯的文章)。

•   pattern 就是要被替換掉的字串,可以用regexp 來表示。

•   string:   將pattern 由 string 所取代。

•   c: confirm,每次替換前會詢問。

•   e: 不顯示error。

•   g: globe,不詢問,整行替換。

•    i: ignore 不分大小寫。

•   g 大概都是要加的,否則只會替換每一行的第一個符合字串。

•   可以合起來用

其中s为substitute,%表示所有行,g表示globa


读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以: w 存档。


Ctrl+v

然后用j、k、l、h或方向键上下选中多列,之后 I I   a A  r  x等,最后按esc,生效




【set可以简写为se】

附录:set的所有选项


注释: n是数字,表示分成几个屏【只会出现n屏,后面跟多了文件不会显示】

使用VIM的帮助 :help split


要在各个屏间切换,只需要先按一下Ctrl+W 

C-w dir  : dir就是方向,可以是 hjkl 或是 ←↓↑→中的一个,其用来切换分屏


这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。


下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W 或是 ,但这可能需要最新的版本才支持

当同时打开几个文件时,按 _ 使当前窗口最大化


VIM操作模式转换图



14 七个习惯

•      快速移动

•      不要两次键入同样的东西

•      错误修复

•      经常需要编辑不止一个文件

•      协同作业

•      文本是结构化的

•      养成习惯

 

1. 快速移动

在文本中随意漫游是非常常见的操作。所以高效编辑的第一要义是学习如何能够在文本中快速移动,准确定位。有三个步骤可以使你学到你需要的技巧:

当你编辑文件的时侯,留意一下你经常要重复进行的操作是什么;

练习使用这些命令,直到你的手指可以不假思索地运用自如;

浏览一下参考手册你就会发现关于tag的主题。文档会告诉你如何使用这一功能跳转到函数的定义处。

2. 不要两次键入同样的东西

借助":s"替换命令或者"."重复命令等快捷操作代替重复操作。

3. 错误修复

缩写功能来纠正。一些例子是::abbr Lnuix Linux。

语法高亮机制。

4. 经常需要编辑不止一个文件

创建tag文件。

将光标定位在你要查看其原型的函数名上,然后按下"[I"命令, Vim将会显示include文件中匹配这个函数名的一个清单。

预览标签机制会打开一个特殊的预览窗口,并且使光标仍然停留在你当前所在的位置,在预览窗口中的文本列出了当前光标所在处的函数的声明(有些可能不是声明)将当前光标移动到另一个函数名上, 停留几秒钟, 预览窗口中的内容就会变成是关于新函数名的声明。

5. 协同作业

Unix的哲学是使用独立的小程序,每个小程序做一项专门的任务,并且把它作好,将它们的工作整合到一起来完成一个复杂的任务。

Vim的做法是将一些分散的小程序整合起来,产生强大的处理能力,在这方面Vim还有待在将来进一步提高。

在编辑器领域, emacs是这方面的一个典范(有人甚至说它是一个能编辑文本的操作系统)

6.文本是结构化的

加速你的编辑-编译-修改的周期。

":make" 命令编译程序项目,捕获编译的错误/警告并允许你直接跳转到引起这一错误/警告的程序行上去;

`errorformat选项告诉Vim你的编译器将生成何种格式的错误信息,以便于它能识别;

写一些自定义的宏,如要跳转到manual 帮助文档, 这对于查看交叉索引是一种简捷有效的办法;

使用上面的三项原则可以对付任何形式的结构化文本。

7. 养成习惯

绝大多数人只需要学习其中的10-20%的命令就足以应付它们的工作了。

建立适合自己的命令集,不时地回顾以往所做的事, 看看是不是可以自动完成一些重复的工作。

不断地重复练习你的解决方案直到你的手指可以条件反射地自动完成,从而达到你所期望的境界。

不要一次尝试太多的东西,一次做一件事并多做几次会好得多。

对于不经常的操作,最好记下你的处理步骤以备将来不时之需。

不管怎样,只要目标明确。你就能找到让你的编辑变得更加高效的办法。

 

原文来自;http://blog.csdn.net/wklken/article/details/7533272