`
wangshaofei
  • 浏览: 272652 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

vim 相关操作方法命令

    博客分类:
  • php
vim 
阅读更多
1. 翻页
整页翻页 ctrl-f ctrl-b
f就是forword b就是backward
翻半页
ctrl-d ctlr-u
d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom
2. 替换
注意,其中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾。
在文件的第一行或其5行至最后一行的行首插入内容     :5,$s/^/要加的内容/ 在文件的每一行的行尾添加内容   :%s/$/要加的内容/g 在整个文件中替换string成string1  :%s/string/string1/g

替换操作
经常用到的一些简单替换命令有:
◆ s 将当前字符替换为一个或多个字符,例如5 s 表示将从当前字符开始的5个字符替换为一个或多个字符; ◆ S 将当前行替换为一个或多个字符; ◆ r 单个字符替换。

文本格式转换
将DOS格式文本转成Unix格式文本,命令如下:
:1,$s/^M//g
其中^M是同时Ctrl+V+M按出来的,表示回车。
在行首尾添加字符串
用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。
:g/^/s//NewString/g :%s/^/NewString/g
用下列命令在每行的行尾添加字符串“NewString”:
:g/$/s//NewString/g :%s/$/NewString/g
从文本的第3行至最后一行的行首全部插入字符串“NewString”:
:3,$s/^/NewString/

在整个文件中替换
在整个文件中替换特定字符串,所用的命令如下:
:%s/old_string/new_string/g
如果仅将文件中的第3行到第7行中的“old_string”替换成“new_string”,那么使用下列命令:
:3,7s/old_string/new_string/
复制 y 粘贴 p 选择开始 v
3. 复制
请问如何用vi 复制第5行到第10行并粘贴到第12行之后
命令行模式下输入 
:5,10 co 12
4.格式化代码
 VIM格式化代码:
  格式化全文指令  gg=G
  自动缩进当前行指令  ==
      格式化当前光标接下来的8行  8=
      格式化选定的行  v 选中需要格式化的代码段 =
      备注:   gg  ——  到达文件最开始   =   ——  要求缩进   G     ——  直到文件尾
  注释代码:(这个原理上就是使用VIM的正则替换)   以C++和Python为例。
  注释连续行:
  指令格式  :起始行,终止行s/要替换的字符/替换为字符/g
  如,       C++源文件中注释掉10~20行,指令为:   :10,20s/^/////g
  Python源文件中注释掉10~20行,指令为:   :10,20s/^/#/g
  取消连续行注释:   指令格式同上。只是要替换字符与替换为字符要互换:
  如,       取消C++源文件中的10~20行的注释,指令为:   :10,20s/^//////g
  取消Python源文件中的10~20行的注释,指令为:   :10,20s/^#//g (1) gg=G 是一个自动缩进的命令 (在命令状态下直接输入,不需要输入冒号),gg是文件首,G是文件尾,所以 gg=G 是整理全部代码。
(2) == 整理当行,加行数整理多行。
(3) ={ 或者 =i{ 整理一个代码块。
(4) mG=nG 当 m 不等于 n 的时候能完成从 m 行到 n 行的局部的缩进。例如,从80行缩进直到100行,你可以用 80G=100G,在命令状态下使用 :set nu 查看行号,一般更习惯将 se nu 直接写入Vim的配置文件,这样每次打开都会显示行号。
(5) 在写代码前,设置自己的代码风格。在配置文件里添加命令:
" 设置缩进和行号
set nu ru ai si ts=4 sw=4
(6) :set equalprg=indent
意思是用indent程序处理等号命令,indent默认是gnu风格。
建议不要改,代码风格应该自己主动养成,=适用于修改代码或者粘贴别处代码后整理缩进。
这里又体现出不用indent的好处了,如果用indent,单纯格式化代码块会丢统一的行首缩进,而且选中的如果不是内部完整的代码块,会出错,把出错的输出贴到了代码里....弊端很多。


1.12. 定宽文本排版

在传统的 Unix 环境下,文本文件的定义是具有一定长度限制的文本行的组合 [19]。虽然 Vim 本身对行的长度没有任何实际的限制,但有一些工具有这样的限制。为了最大程度的兼容性,也为了在显示、打印等处理上比较方便,一般推荐在邮件和源代码中一 般不要超出 72 列(最多不超出 80 列)。Vim 在处理定宽的文本方面具有特殊的支持能力。下面是一个在 Vim 中把行宽(使用选项 textwidth)设为 40 后输入 Harry Potter and the Half-Blood Prince 的第一句话的结果:

输入时我只使用了英文字母和空格,换行符都是 Vim 自动插入的。如果在某一行加入或删除了一些字符后行不就不齐了吗,该如何处理?很简单,把光标移到要重新格式化的文本开头,使用“gq”命令后面跟一个光 标移动命令确定重新格式化的范围。比如“gq}”(格式化一段),“gq5j”(格式化 5 行),“gqG”(格式化至文件末尾)。

除了选项 textwidth 外,选项 formatoptions 确定了跟文本格式化有关的基本选项,常用的数值有:

  • t:根据 textwidth 自动折行;
  • c:在(程序源代码中的)注释中自动折行,插入合适的注释起始字符;
  • r:插入模式下在注释中键入回车时,插入合适的注释起始字符;
  • q:允许使用“gq”命令对注释进行格式化;
  • n:识别编号列表,编号行的下一行的缩进由数字后的空白决定(与“2”冲突,需要“autoindent”);
  • 2:使用一段的第二行的缩进来格式化文本;
  • l:在当前行长度超过 textwidth 时,不自动重新格式化;
  • m:在多字节字符处可以折行,对中文特别有效(否则只在空白字符处折行);
  • M:在拼接两行时(重新格式化,或者是手工使用“J”命令),如果前一行的结尾或后一行的开头是多字节字符,则不插入空格,非常适合中文

上面提到的注释,可以是 C/C++ 中的“//”和“/*”,也可以是邮件中引用原文使用的“>”等字符(具体由 comments 选项控制;参见“:help 'comments'”)。Vim 在遇到这些字符时,能够相当智能地进行处理,足


 

 

zz是卷页面使光标到中间
M是移动光标到中间

:set scrolloff=10 可以让光标一直在中间
调整数的大小可以控制区域

  Vim(2):多标签切换|窗口拆分-tabnew 收藏 2012年04月24日

vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口. 之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。 用法 :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab :tabc       关闭当前的tab :tabo       关闭所有其他的tab :tabs       查看所有打开的tab :tabp      前一个 :tabn      后一个 标准模式下: gt , gT 可以直接在tab之间切换。 还有很多他命令, 看官大人自己, :help table 吧。 看过Swaroop的书之后,就越来越喜欢VIm了。 尤其是多窗口,真是非常Cool哦~ 解释一下这是咋弄出来的: 在Vim中开多窗口其实比较简单,也有不只一种方法,直接使用命令:new默认就是打开一个水平分割的新窗口。另外一个命令就是:split(sp)。 但是默认水平分割多少有点不爽,因为本来屏幕就是宽屏的,代码几乎不会写那么长了,而真正缺少的垂直空间,所以这个时候就要用到垂直分割了,命令是:vsplit(vs),很简单了一目了然。 打开了这么多窗口不知道如何切换肯定不行啦。切换也很简单,组合键ctrl+w,然后通过j/k,来定位窗口,注意看好窗口光标变化。不过个人感觉这样比较麻烦,每切换一次窗口都要先按组合键才行。还好还有另一种方法,那就是直接连续按两次ctrl+w组合键,vim会自动跳到下一个窗口。 另外更改窗口宽度的命令是: Crtl+w > 将当前窗口向右边扩展一行,将 > 换成 < 就是向左边扩展一行。也可以在之前使用数字代表扩展的行数, 5 Ctrl+w > ,向右边扩展5行。 更改窗口高度类似,只是命令是Ctrl+w + ,增加高度,- 减小高度。

from:http://hi.baidu.com/dtzw/blog/item/64a6f3f2fc10721eb07ec590.html

 

 

 

vim是个优秀的编辑器,有很多功能你不知道。 比方说vim可以模拟多窗口(多tab)以及拆分窗口,可以同时编辑多个文件。 多tab时,每个tab可以编辑一个文件,但不同的tab不能同时显示,要切换。 拆分窗口后,窗口是同时显示的,每个窗口可以编辑一个文件。 两种方式可以同时生效的,现在试一下: 命令模式:输入sp,窗口就上下拆分成两个窗口了。 按ctrl+w然后再按c,就关掉当前窗口了。 连按两次ctrl+w,可以在窗口间切换。 输入vs,就是垂直拆分。 也可以多tab,输入命令tabnew,就创建一个新tab,命令tabn就切换到下一个tab,tabn3就切换到第三个tab,tabc就关掉当前tab。 具体看vim的手册,或者vim里help 某个命令。 vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口. 之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。 用法 :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab :tabc       关闭当前的tab :tabo       关闭所有其他的tab :tabs       查看所有打开的tab :tabp      前一个 :tabn      后一个 标准模式下: gt , gT 可以直接在tab之间切换。 还有很多他命令, 看官大人自己, :help table 吧。 看过Swaroop的书之后,就越来越喜欢VIm了。 尤其是多窗口,真是非常Cool哦~ 解释一下这是咋弄出来的: 在Vim中开多窗口其实比较简单,也有不只一种方法,直接使用命令:new默认就是打开一个水平分割的新窗口。另外一个命令就是:split(sp)。 但是默认水平分割多少有点不爽,因为本来屏幕就是宽屏的,代码几乎不会写那么长了,而真正缺少的垂直空间,所以这个时候就要用到垂直分割了,命令是:vsplit(vs),很简单了一目了然。 打开了这么多窗口不知道如何切换肯定不行啦。切换也很简单,组合键ctrl+w,然后通过j/k,来定位窗口,注意看好窗口光标变化。不过个人感觉这样比较麻烦,每切换一次窗口都要先按组合键才行。还好还有另一种方法,那就是直接连续按两次ctrl+w组合键,vim会自动跳到下一个窗口。 另外更改窗口宽度的命令是: Crtl+w > 将当前窗口向右边扩展一行,将 > 换成 < 就是向左边扩展一行。也可以在之前使用数字代表扩展的行数, 5 Ctrl+w > ,向右边扩展5行。 更改窗口高度类似,只是命令是Ctrl+w + ,增加高度,- 减小高度。

 

 

VIM 标签页 (tab) 新建标签页 使用:tabe命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用:tabnew命令,在新标签页中编辑新的文件。命令:tab split将在新标签页中,打开当前缓冲区中的文件。 命令:tabf允许你在当前目录搜索文件,并在新标签页中打开。比如我想打开当前目录下的img.txt文件,那么就可以使用:tabf img.*命令。请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示你“文件名过多”,这时你需要给出更精确的搜索条件以打开文件。 Vim默认最多只能打开10个标签页。你可以用set tabpagemax=15改变这个限制。 列示标签页 命令:tabs可以显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。 关闭标签页 命令:tabc可以关闭当前标签页。而命令:tabo将关闭所有的标签页。 切换标签页 命令:tabn或gt可以移动到下一个标签页。而命令:tabp或gT将移动到上一个标签页。如果已经到达最后面或最前面的标签页,将会自动转向循环。 如果你打开了很多标签页,那么可以使用:tabfirst或:tabr命令,移动到第一个标签页。使用:tablast命令,移动到最后一个标签页。 移动标签页 如果你希望按照指定的次序排列标签页,那么你可以使用:tabm命令。请注意,标签页次序是从0开始计数的。比如命令:tabm 1将把当前标签页移动到第2的位置。如果你没有为:tabm命令指定参数,那么当前标签页将会被移动到最后。 配置标签页 默认情况下,只有用户新建了标签页才会在窗口上方显示标签栏,这是由选项set showtabline=1决定的。如果我们希望总是显示标签栏,那么可以用set showtabline=2命令来设置。如果我们希望完全不显示标签栏,那么可以使用set showtabline=0来设置。 多标签页命令 使用:tabdo命令,我们可以同时在多个标签页中执行命令。比如我们打开了多个标签页,需要把这些文件中的“food”都替换成“drink”,那么就可以使用:tabdo %s/food/drink/g命令,一次完成对所有文件的替换操作,而不用针对每个文件重复操作。 图形界面 如果你使用的是带有图形界面的gVim,那么新建、关闭和打开标签页的操作,都可以通过在标签页上右击鼠标完成。只需要点击相应标签,就可以在不同的标签页间切换。 通过:help tab-page-intro命令,可以获得关于标签页使用的更多信息。 命令小结 :tabnew    新建标签页 :tabs    显示已打开标签页的列表 :tabc    关闭当前标签页 :tabn    移动到下一个标签页 :tabp    移动到上一个标签页 :tabfirst    移动到第一个标签页 :tablast    移动到最后一个标签页

分享到:
评论

相关推荐

    vi/vim命令(图片)

    对照键盘,详细的vi使用方法,可打印贴在墙上,便于学习。

    vim使用进阶:vim使用技巧、配置、命令和插件

    本文介绍了如何使用Exuberant ctags生成tag文件以及在vim中如何使用tag文件进行跳转、查找等操作。还简要介绍了tag文件的格式,在后面介绍的Lookupfile插件中,会利用tag文件便捷的查找、打开文件。 vim使用进阶: ...

    linux_vim命令教程

    vim操作命令及学习方法,非常的详细,看过后基本能学会vim

    vim user manual ---vim用户手册

    请从头至尾细读本章, 本章讲述Vim的基本命令. jusr 01.txtj 关于本手册 j01.1j 两套帮助 j01.2j 关于安装 j01.3j 使用Vim教程 j01.4j 版权 jusr 02.txtj Vim第一步 j02.1j 首次运行Vim j02.2j 插入文本 9 10 第00章...

    VIM插件及教程

    你可以使用vim底行中使用cscope的命令; 也可以应用cscope的键盘映射进行快速操作。 在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库, 然后就可以调用“cscope find”命令进行查找了...

    Vim用户手册中文版72.pdf

    04.1 操作符命令和位移 04.2 改变文本 04.3 重复改动 04.4 Visual模式 04.5 移动文本 04.6 复制文本 04.7 使用剪贴板 04.8 文本对象 04.9 替换模式 04.10 结论 第05章 定制你的Vim 05.1 vimrc文件 05.2 vimrc示例 ...

    Hacking Vim

    Ctrl + v 定位到开始行,然后选定需要的行,然后执行 I 命令,然后输入 # 或 //,然后按 Esc键两次,即可把注释操作应用到所有选定的行,记住选定不能使用v指令,而应该使用Ctrl + v (清除注释请参考上面的方法)(v是...

    Vim 强制保存只读类型文件的方法

    在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。 每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法...

    Linux使用VIM编辑器的方法

    虽然可以在每个 Vim 会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在 Vim 的配置文件中配置这些命令。 技巧:快速提高 vim 使用效率的原则与途径 vim 是所有 Unix/Linux 操作系统默认配备的编辑...

    一个很好的vim配置(可鼠标操作,有目录,自动补全)

    个目录具体是什么要看你的系统和vim的版本,可以先用locate命令找一下。我的是 /usr/share/vim/vim72/doc 和 /usr/share/vim/vim72/plug。 3.在.vimrc中设有几个快捷键: map &lt;F1&gt; :wqall&lt;CR&gt; //保存全部并退出 ,...

    Nginx隐藏和伪造版本号的操作方法

    1、默认使用curl命令访问: # curl -I http://172.17.0.5 2、修改nginx.conf配置文件,在http配置段中新增如下代码: # vim /usr/local/nginx/conf/nginx.conf server_tokens off; 3、修改fastcgi.conf配置文件,...

    vim-obsession:obsession.vim

    Vim提供了一个:mksession命令来写一个包含Vim当前状态的文件:窗口位置,打开的折叠,类似的东西。 在我的大部分时间里,我都觉得接口的方法太笨拙且无法使用,但是最近我发现,站在我和简单,无麻烦的Vim会话之间...

    Linux网络操作系统基础:Vi编辑器使用方法.pptx

    vim编辑器命令格式;vim基础操作 - 打开文件;vim基础操作 - 移动光标;vim基础操作 - 数据操作;vim基础操作 - 行号显示与取消;vim基础操作 - 查找与替换;vim基础操作 - 设置搜索高亮;vim基础操作 - 修改文件;vim基础...

    linux操作系统命令大全

     了解了命令的功能之后,还需要通过实践来掌握这些命令的使用方法,因为它们是进行系统管理的基础。 ·2.1 Linux的DOS-like命令 ·2.3 Linux的多人多工命令 ·2.5 Linux查找文件的相关命令 ·2.2 Linux特有的...

    操作系统,虚拟机使用基础命令,命令使用方法

    vim vi文本编辑器,命令模式、插入模式、末行模式转换

    vim的一些常用简单操作小结

    大家都知道vim在Linux下使用很多,但是习惯了在Windows下的文本操作,在vim中进行文本操作会觉得很不方便,但是vim是一个很强大的工具,只是还不熟练去使用它,下面是一些常用的vim文本操作方法。

    vi使用方法详细介绍.docx

    linux vim 文件 编辑 操作命令详细介绍

    安卓系统下的bash shell,ssh服务器,gcc编译器以及vim文本编辑器等

    重复执行前一个命令的方法: 使用上方向箭头,回车执行 Ctrl+p !-1 !! 重复执行历史缓冲区的命令 !#(#=数字):重复执行历史命令中的编号为#的命令 !(string)字符串:从历史缓冲区中查找最近一次...

    lazyList:在Vim中创建列表的快速方法

    LazyList,一种在Vim中创建列表的快速方法 | | 描述 LazyList是一个vim插件,它使您可以非常快速地创建有序列表和无序列表,这可以通过在当前选择的每一行的开头添加索引来实现。 使用非数字索引,该插件甚至可以...

Global site tag (gtag.js) - Google Analytics