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

每日一Vim(26)Normal 命令

阅读更多

 

每日一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有三种基本模式:正常模式(Normal mode),插入模式(Insert mode)和可视模式(Visual mode)。 - **正常模式**:默认模式,可以通过按键`i`, `a`, `o`, `I`, `A`, `O`等进入插入模式。 - **插入模式**:...

    vim常用命令总结

    ### vim常用命令总结 #### 一、概述 `vim`是一款功能强大的文本编辑器,在Linux环境中广泛使用。本文档旨在总结`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 命令**:进入插入...

    linux的vim编辑器命令大全

    - **进入vim编辑器**:可以通过命令 `vim 文本名` 来打开一个已存在的文件或者创建一个新的文件进行编辑。 - 如果文件已经存在,则vim将加载该文件到编辑器中;如果文件不存在,则会在指定位置创建该文件。 - **不...

    vim_命令手册

    ### Vim命令手册详解 #### 修改Vi文本 在Vim编辑器中进行文本修改时,有许多命令可以帮助用户高效地完成任务。 - **rchar**: 该命令用于将当前字符替换为`char`。例如,如果想要将光标所在位置的字符替换成字母...

Global site tag (gtag.js) - Google Analytics