`
lantian_123
  • 浏览: 1368519 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

每日一Vim(26)Normal 命令

vim 
阅读更多

 

每日一Vim(26)---跨行执行〈Normal模式下的〉命令

以往,要想在多行执行normal 模式下命令可以通过定义宏来重复操作,今天讲个新鲜的。:normal命令。之前讲过一个列子,实现注释多行代码这样一个需求,可选的方法如下三种方式:(当然你还可以相出更多的办法来)

import urllib2
def html():
    f = urllib2.urlopen("http://www.douban.com")
    print f.read()
  1. 替换::%s/^/#/g
  2. visual block:gg<Ctrl-v>I#<Esc>
  3. 注释第一行后用.重复执行每一行

我们可以在第三种方法之上用normal命令实现上述需求,步骤:

  1. 光标定位到首行,执行:I#<Esc>
  2. jVG选中之后的所有行
  3. :'<,'>normal .这样刚刚选中的行都将执行.代表的最后一次操作。注:只要输入:就能实现:'<,'>,你可以注意VIm的左下角的提示。

第四种方法::%normal I#,%代表这个文件,当然你可以选择具体的范围,如::1,4normal I#

总结::normal命令可以执行任何normal 模式下的命令,更多帮助::help normal。对了,上面这个例子你还可以用“宏,record”来达到要求,如果没有想起来,翻开Recode/Play试试吧。

转载请注明出处,谢谢合作!作者---zhijun

2
6
分享到:
评论
3 楼 kidneyball 2013-04-15  
isensen 写道

你是用intellj编绎和DEBUG ,然后VIM 编码 ?如果是这样具体怎么配置,ECLIPSE能不能这样配置.因为我想练习用VIM编程,但是刚开始效率太低.如果这样的话.可以方便的来回切换.挺好


我在Intellij里用IdeaVim插件模拟vim的keymap。这个插件有个好处是可以一键切换vim和另一个惯用keymap,这样有一些vim模式里被冲掉的调试或重构指令我切到另一个keymap就行了。但这个插件对vim的一些高级功能没有模拟,例如没有:put命令,无法导出寄存器内容(也就是无法导出和编辑宏)。所以一些宏操作或者高级查找替换我就切到真正的vim下操作。

没用Eclpse两年多了,我记得是可以设第三方编辑器,但不知道有没有提供变量表示光标位置。如果没有就只能打开文件后再自己定位了。

Eclipse下使用Vim的编辑习惯据我所知有两种方式,一是用Eclim把整个vim嵌入到Eclipse中或者让Eclipse在后台为Vim提供代码辅助信息。这种方式我个人不太喜欢,因为要设定和记忆一堆vim里没有提供的调试和重构相关的快捷键(如果改成用鼠标操作就没有意义了,使用vim的目的就是除非实在迫不得已都不用去按方向键或者鼠标)。二是用Vrapper或VimPlugin插件在Eclipse里模拟Vim的使用方式,我个人比较倾向这种方式。但这两个插件当年据说还不太稳定,我也没用过,你可以测试一下。

我不太推荐用IDE编译和DEBUG,VIM编码的工作方式。同时使用两套不同的keymap还是挺痛苦的,特别是vim用惯了用其他编辑方式老是会不小心打一堆的hhlljjj,想撤销时不小心还再多打几个u……
2 楼 isensen 2013-04-15  
kidneyball 写道
补充一点:
normal命令的一个作用是让vim在启动时用+参数执行一段normal命令。

比方说,Intellj里打开第三方编辑器是可以传入当前光标位置的,我们可以让Intellj用以下的命令行来打开GVim

C:\Vim\vim73\gvim.exe $FilePath$ +$LineNumber$ "+normal 0$ColumnNumber$|"


其中的 $参数$ 在Intellj调用第三方命令时会替换成实际内容。gvim的+命令行参数表示在载入文件后自动执行一段command,+$LineNumber$让光标移动到第LineNumber行 (也就是执行 :行号 命令)。 +normal0$ColumnNumber$| 让光标移动到第ColumnNumber可视列 (注意最后的|是管道符号而不是字母l)。

把这个打开Gim的命令绑定到一个热键上,这样在Intellj中就可以一键启动Gvim,打开你正在编辑的文件,光标自动定位到你正在编辑的位置。当然前提是GVim的缩进设定与Intellj中一致。



你是用intellj编绎和DEBUG ,然后VIM 编码 ?如果是这样具体怎么配置,ECLIPSE能不能这样配置.因为我想练习用VIM编程,但是刚开始效率太低.如果这样的话.可以方便的来回切换.挺好
1 楼 kidneyball 2013-04-15  
补充一点:
normal命令的一个作用是让vim在启动时用+参数执行一段normal命令。

比方说,Intellj里打开第三方编辑器是可以传入当前光标位置的,我们可以让Intellj用以下的命令行来打开GVim

C:\Vim\vim73\gvim.exe $FilePath$ +$LineNumber$ "+normal 0$ColumnNumber$|"


其中的 $参数$ 在Intellj调用第三方命令时会替换成实际内容。gvim的+命令行参数表示在载入文件后自动执行一段command,+$LineNumber$让光标移动到第LineNumber行 (也就是执行 :行号 命令)。 +normal0$ColumnNumber$| 让光标移动到第ColumnNumber可视列 (注意最后的|是管道符号而不是字母l)。

把这个打开Gim的命令绑定到一个热键上,这样在Intellj中就可以一键启动Gvim,打开你正在编辑的文件,光标自动定位到你正在编辑的位置。当然前提是GVim的缩进设定与Intellj中一致。

相关推荐

    vim的基本命令

    ### Vim基本命令详解 #### 一、概述 Vim(Vi IMproved)是Unix/Linux系统中最常用的文本编辑器之一,其强大的功能和高度可定制性使其成为开发人员和系统管理员的首选工具。对于Linux开发人员而言,熟练掌握Vim的...

    Vim文件编辑命令

    Vim文件编辑命令

    VIM常见命令总结vim常见命令总结

    - VIM有三种基本模式:正常模式(Normal mode),插入模式(Insert mode)和可视模式(Visual mode)。 - **正常模式**:默认模式,可以通过按键`i`, `a`, `o`, `I`, `A`, `O`等进入插入模式。 - **插入模式**:...

    VIM命令VIM命令VIM命令

    VIM工具命令的使用。VIM工具命令的使用。VIM工具命令的使用。

    vim常用命令总结

    ### vim常用命令总结 #### 一、概述 `vim`是一款功能强大的文本编辑器,在Linux环境中广泛使用。本文档旨在总结`vim`编辑器中常用的命令,这些命令可以帮助用户高效地进行文本编辑工作。总结包括查找命令、修改...

    VIM命令总结VIM命令总结

    VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结VIM命令总结

    含有vim常用命令的桌面背景图片

    **vim编辑器简介** vim(Vi IMproved)是一款强大的文本编辑器,它是vi(Visual Editor)的增强版,...将包含这些命令的壁纸作为桌面背景,无疑是一种很好的记忆辅助方式,可以在工作中随时查阅,提升vim操作技能。

    linux下vim命令详解

    宏命令是Vim中一项非常有用的功能,允许用户录制一系列命令并在以后重新执行它们。这对于批量处理相似任务特别有效。 - **录制宏**:在正常模式下,使用`:qx`开始录制宏,其中`x`是用于存储宏命令的寄存器。例如,`...

    vim 命令大全

    ### Vim命令大全与新手入门指南 #### 一、Vim简介与强大之处 Vim,全称Vi IMproved,是一款源自Unix系统下的Vi编辑器的高级版本,它不仅继承了Vi的强大功能,还在此基础上增加了许多改进和扩展,使之成为当今最...

    vim常用命令.txt

    `vim`支持命令模式、插入模式以及可视模式等多种编辑方式,并且可以通过一系列丰富的命令来高效地进行文本编辑工作。本文将围绕提供的文件中的内容,对`vim`的常用命令进行详细解析。 #### 二、具体知识点解析 ###...

    VIM命令大全图集

    在VIM中,有三种模式:正常模式(Normal mode)、插入模式(Insert mode)和可视模式(Visual mode)。正常模式是默认模式,用户可以通过按下`i`进入插入模式进行文本输入,按`Esc`回到正常模式。可视模式允许用户...

    一张图记住 Vim 常用命令

    本来不算写 Vim 使用教程的,因为我想网上应该会有很多,然后我去搜了一下看到别人写的好丑好乱啊,于是... 跳至指定行4、Last line mode下命令简介A) 列出行号B) 跳到文件中的某一行C) 查找字符D) 保存文件E) 离开 Vim

    Vim 常用命令

    由于其独特的操作模式和丰富的命令,Vim成为了许多程序员和系统管理员钟爱的编辑器之一。下面详细介绍一些常用的Vim命令,帮助用户更高效地使用这一强大的工具。 首先,进入Vim的基本命令是`vim [filename]`,这会...

    Vim常用命令详细汇总(全)

    vim常用命令 我汇总的一些vim常用的指令和按键操作,和一些NERDTree菜单插件的命令,尤其是NERDTree,这个vim插件装上之后,感觉完全可以把vim当IDE来用,实在是我辈码农的装逼利器。 1. 功能指令 按键 解释 ...

    vim 命令 键盘图

    `vim命令图解.png`可能是详细解析各种Vim命令的图表,这些命令包括文本对象选择(如aw - 一个单词,ip - 一个句子),可视模式(`v`,`V`,`Ctrl + v`分别对应字符、行、块选择),以及文本操作(`.`重复上一次动作...

    vim命令操作大全

    本图片包含大量的常用vim使用命令和操作,而且对所使用的命令进行了分类,方便查阅

    vim命令小结(vim一些常用命令)

    在Vim的Normal模式下,用户可以通过以下命令快速移动光标: - `SPACE`, `l`, 右向箭头:光标向右移动一格。 - `BACKSPACE`, `h`, 左向箭头:光标向左移动一格。 - `k`, 向上箭头:光标向上移动一行,保持列位置不变...

    vim常用的命令

    ### Vim常用命令详解 #### 一、基本操作与模式切换 **标题与描述解析:** 本文档旨在介绍Vim编辑器的一些基础命令,适用于初学者。这些命令可以帮助用户进行文本编辑、移动、查找等功能。 - **i 命令**:进入插入...

    vim命令文档

    【vim命令文档】详解 ...了解并熟练运用这些基础命令,是深入学习Vim的第一步。随着经验的积累,你会发现Vim不仅是一个编辑器,更是一种高效的工作工具。不断探索和实践,你将能够发掘出更多Vim的强大功能。

Global site tag (gtag.js) - Google Analytics