`
lantian_123
  • 浏览: 1360322 次
  • 性别: 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命令

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

    vim常用编辑命令 vim常用编辑命令

    vim常用编辑命令 vim常用编辑命令 vim常用编辑命令

    vim常用命令vim常用命令vim常用命令

    vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令

    VIM命令总结VIM命令总结

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

    vim的基本命令

    学习vim编辑器,第一步熟记vim的基本命令。linux开发必备。

    Vim文件编辑命令

    Vim文件编辑命令

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

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

    VIM常用命令大全

    VIM常用命令大全VIM常用命令大全VIM常用命令大全VIM常用命令大全

    vim常用命令总结

    vim编辑器中常用的命令总结,以图片和树状结构的形式完美的总结了vim中常用命令。如:查找名,修改命令,删除命令

    vim最全命令表(加重点)

    搜集的非常全的一个vim编辑器使用命令表

    linux下vim命令详解

    linux下vim命令详解 高级一些的编辑器,都会包含宏功能,vim 当然不能缺少了,在 vim 中使 用宏是非常方便的

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

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

    vim命令操作大全

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

    Vim命令合集.docx

    在vim窗口中打开一个新文件 :open file 在新窗口中打开文件 :split file 切换到下一个文件 :bn 切换到上一个文件 :bp 查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。 :args 打开远程文件,比如ftp或者...

    vim常用命令整理

    主要是整理了一些vim最常用的命令,基本够用了,整理成pdf,便于打印一份,放在手边

    Linux vim 常用命令

    VIM编辑常用命令详细解读,全面又简洁,目录清晰,偏于查找

    ubuntu and vim 命令大全

    ubuntu and vim 命令大全 ubuntu and vim 命令大全 ubuntu and vim 命令大全 ubuntu and vim 命令大全

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

    众所周知,vim是Linux下面最重要的编辑器了~ 而对vim命令的学习是学好vim的重中之重~这张壁纸上面集中了vim的一些常用命令, 把它当作的桌面背景,随时随地可以查看vim命令~

    vim命令图解 pdf

    vim 命令图解,linux里面的文本编辑器

    vim速查命令

    自己整理的关于超强编辑器gVim的命令速查一览表!

Global site tag (gtag.js) - Google Analytics