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

每日一Vim(19)Visual-Block 模式

阅读更多

每日一Vim(19)Visual-Block 模式

从这节开始做点小小变化,增加一些例子的成分,这些例子一般来自于实际编程情景中,算是理论与实践相结合。

Visual-Block模式一个非常强大的功能就是它支持列操作,比如在某个代码块每行的行首插入注释符号。举例说明:假如有如下Python代码,我想把它全部注释

for e in exclude:
if e.endswith(".py"):
        try:
        os.remove("%sc" % e)
        except:
                pass
                try:
                with open(e, "r") as f:
        exclude[e] = (f.read(), os.stat(e))
        os.remove(e)
        except:
                pass
  1. 光标定位到代码块的行首,Ctrl+v进入Visual-block模式
  2. 光标向下移动,直到选择所有代码行的第0列
  3. 输入I(光标前插入字符),此时你会发现光标跳到了代码块的开头处,此时已经是insert 模式了,现在就插入python的注释字符'#'
  4. Esc键,此时你会发现代码块所选区域都打上了注释符号,如下所示:

    #for e in exclude:
    #if e.endswith(".py"):
    #   try:
    #       os.remove("%sc" % e)
    #   except:
    #      pass
    #      try:
    #      with open(e, "r") as f:
    #   exclude[e] = (f.read(), os.stat(e))
    #   os.remove(e)
    #   except:
    #        pass
    

第二个例子:下面是一段JavaScript片断:

var foo = "a"
var bar = "bcd"
var fb = foo+bar

我们知道js中大部分浏览器都能忍受后面没有分号结尾的语句,但是并不推荐这样做,因为我们有必要给他们在行末都加上分号,我们知道vim吸引人的地方之一就是一个问题往往有不同的解决方案,这里我们至少有两种方法,1.替换法::1,3s/$/;/g(这里的1,3是第一到第三行)2.在Visual block模式下append(追加)。

我们观察上段代码发现每行的语句的长短不一,那有如何批量的加上";"呢,这里关键的一个命令是$,美元符号定位了行未。操作步骤基本还是和第一个例子差不多。只需在选中代码块的时候要注意是:Ctrl+v jj$,这样就能选中到每一行的行末。接着输入A命令表示在行末追加字符,输入“;”再按Esc大功告成了。最终的效果:

var foo = "a";
var bar = "bcd";
var fb = foo+bar;

今天推荐一个vim的游戏给大家,vim-advanture,这是一个迷宫游戏,前三关可以免费玩,之后就要$9.9才能继续玩了,如果没弄懂怎么玩,可以看下这里的攻略,祝玩得开心。

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

分享到:
评论
1 楼 洛阳铲 2013-10-09  
写的非常好
最近学习vim入迷了
那幅多编辑器学习曲线非常受用,学习vim一周学到的内容技巧比半年emacs还多,这儿没有贬低emacs的意思,都说emacs和vi并驾齐驱,只是个人还没有摸到emacs的法门.

相关推荐

    Atom-atom-vim-mode-visual-block,添加视觉.zip

    Atom-atom-vim-mode-visual-block.zip,Add visual-blockwise operation to vim-mode.VIM模式可视块,atom是一个用web技术构建的开源文本编辑器。

    VMware-VIM-all-6.7.0-15976714.txt

    VMware-VIM-all-6.7.0-15976714 原版镜像 .................................................................................................................

    VMware-VIM-all-6.5.0-14020092.txt

    vmware vcenter6.5 for windows版本。 VMware-VIM-all-6.5.0-14020092

    vim-visual-multi:vimneovim的多个游标插件

    vim-visual-multi 类似于visual-block ,它被称为vim-visual-multi ,但是该插件主要在正常模式下工作。 基本用法: 使用Ctrl-N选择单词(例如Sublime Text / VS Code中的Ctrl-d ) 使用Ctrl-Down / Ctrl-Up垂直创建...

    vim-powerline-develop

    **vim-powerline-develop** 是一个针对 Vim 编辑器的扩展插件,它属于 Vim 插件中的 **powerline** 家族。Powerline 是一个非常流行的增强型状态栏插件,它为 Vim、Emacs 和其他软件提供了一个美观、信息丰富的状态...

    vim键盘图(vi-vim-cheat-sheet)

    vim键盘图 ....vi-vim-cheat-sheet.gif vi-vim-tutorial-1.gif vi-vim-tutorial-2.gif vi-vim-tutorial-3.gif vi-vim-tutorial-4.gif vi-vim-tutorial-5.gif vi-vim-tutorial-6.gif vi-vim-tutorial-7.gif

    vim-common-7.4.629-7.el7.x86_64.rpm

    vim-common-7.4.629-7.el7.x86_64.rpm

    Atom-atom-vim-mode-plus,vim.zip

    Atom-atom-vim-mode-plus是针对Atom文本编辑器的一个扩展插件,主要目的是增强其内置的VIM编辑模式。VIM(Vi Improved)是一种高度可配置的文本编辑器,以其高效的操作方式和丰富的命令集而闻名。在Atom中,VIM模式...

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作.zip

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作 tmux-focus-events.vimFocusGained 和 FocusLost 自动命令事件在终端vim中不工作。 这个插件在使用vim内部Tmux时恢复它们。以下是相关内容:vim fugitive插件...

    vim-for-server, .vimrc, 简单配置服务器,不带插件.zip

    vim-for-server, .vimrc, 简单配置服务器,不带插件 vim-for-servervimrc,简单配置服务器,不带插件。简介这个存储库是 k-vim的简化版本。只删除所有插件,保留基本配置。屏幕截图 安装 。 如果有必要,备份旧的. ...

    vim-ide.tar.bz2

    Ubuntu 64位免安装版VIM-IDE。 压缩包为直接打包/etc/vim配置... vim-visual-star-search Vundle.vim YouCompleteMe vimrc vimrc.Vundle 应用于用户版时可提取插件包放到家目录~/.vim下即可,再配合.vimrc可直接使用

    VMware-VIM-all-6.7.0-9451876.txt

    VMware vSphere 6.7 百度网盘链接及提取 码

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题.zip

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题 vim-atom-dark一个由 Atom 黑暗主题默认启发的vim主题。 在 .vim 文件夹中克隆这个文件或者将 colors/atom-dark.vim 文件放在 colors/ 中。

    vim-visual-increment:visual-increment.vim-使用CTRL + AX通过可视模式创建数字或字母的递增序列

    `vim-visual-increment` 插件正是这样一个工具,它为 Vim 带来了一个新的功能,允许用户在可视模式下通过按下 `CTRL + A` 和 `X` 快捷键来快速创建数字或字母的递增序列。 **插件安装与使用** 首先,为了安装 `vim...

    VMware-VIMSetup-all-5.5.0-1312299

    - **定义**: VMware vCenter Infrastructure Manager (VIM) 是一款由VMware公司开发的管理工具,主要用于监控和管理虚拟化环境中的资源使用情况。 - **功能**: VIM支持实时监控、性能管理和资源优化等功能,帮助...

    vim-enhanced-7.4.629-8.el7_9.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim-minimal-8.0.1763-16.el8.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim8.0.zip --Linux-CentOS7离线安装VIM及相关依赖包

    vim-8.0.zip gpm-libs-1.20.7-6.el7.i686.rpm ncurses-5.9-14.20130511.el7_4.x86_64.rpm ncurses-base-5.9-14.20130511.el7_4.noarch.rpm ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm ncurses-libs-5.9-14....

    开源项目-codepushr-vim-go-runtime.zip

    而 Codepushr-vim-go-runtime 正是为 Vim 用户提供了一个专门针对 Go 语言的快速且可扩展的开发环境。这个开源项目旨在优化 Vim 对 Go 语言的支持,让开发者能够充分利用 Vim 的强大功能进行 Go 语言的开发。 首先...

    vim7.4版本rpm

    vim-common-7.4.629-8.el7_9.x86_64.rpm vim-enhanced-7.4.629-8.el7_9.x86_64.rpm vim-filesystem-7.4.629-8.el7_9.x86_64.rpm vim-minimal-7.4.160-5.el7.x86_64.rpm

Global site tag (gtag.js) - Google Analytics