vim 列编辑模式

标签: vim 视窗模式 列编辑模式


  • vim 列编辑模式
  • 例子:给列批量添加前缀、后缀、修改字段

vim 列编辑模式

vim 有三种编辑模式,命令模式、输入模式、视窗模式,我们常用的是前两种模式,但是视窗模式还是非常不错的,进入 vim 编辑器,模式是命令模式,可以通过 ia 等进入输入模式,也可以通过 vc+v 进入视窗模式。

视窗模式可以让我们选择一块区域,这个区域好比是一个视图窗口,可以进行批量编辑。

例子1:给列批量添加前缀、后缀、修改

我们经常会有这样的一个场景,需要对 excelcsv 的某一列进行编辑,例如添加一些前缀、后缀或者修改,一般在维护数据或者批量生成一些 sql 语句非常常见。

那么我们来看个例子:我们需要生成一组测试数据,这组数据需要添加 sql insert 前缀,我们才能批量倒入到 DB 中去。

我们简单来生成一组测试数据:

for ((i=1;i<=10000;i++))
do echo $RANDOM >> ids.csv
do

我们需要将这一组id添加到DB中,vim 编辑这个文件。

vim ids.csv

默认打开是进去命令模式,此时我们需要在列的前后添加sql代码。c+v 进去可视化模式。

然后 GG 跳到最后一行,然后 L 向右选择当前列。shit+i 切换到列前输入。

然后输入sql insert 语句。

insert into tb_ids(id) values (

然后通过 esc 退出视图模式,会自动生成所有行的前缀。

我们继续添加列后缀部分。和之前的编辑模式还是一致的,只是全部选中之后使用 shit+a 切入到列后端。

输入 sql insert 结尾部分。

);

当然这里面会有一些问题需要注意,列需要是有规则的,如果没有规则的列需要先排序好,然后分批处理。如果是整行模式,可以直接 v 模式进入整行编辑模式。vim的功能还是很丰富的,这里只是分享一个很简单的例子。

作者:王清培 (趣头条 Tech Leader)

vim 列编辑模式的更多相关文章

  1. vim列编辑模式快捷键

    vi/vim编辑器 多行行首插入   1 在多行行首插入,在nomal模式下按下ctrl+v,然后进行选择(如果想要选择至文件结尾,则再按G) 2 选择好以后按大写的I,则光标会自动跳转到所选择行的第 ...

  2. 如何使用VIM的列编辑模式 [转]

    如何使用VIM的列编辑模式? * windows 我使用的VIM FOR WINDOWS,一直都听说VIM有列编辑模式,一直没有使用过,试了几次都失败了.今天又因为工作需要,到网上查了一下,经过不断的 ...

  3. Emacs 之列编辑模式

    // */ // ]]> Emacs 之 列编辑模式 Table of Contents 1. Emacs 下列编辑模式常用命令 2. 可以参考 1 Emacs 下列编辑模式常用命令 先mark ...

  4. Emacs和Ultra Edit列编辑模式

    在emacs中可以使用C-r系列组合键进行区域选择编辑,或者使用emacs自带的cua-mode,然后键入C-ret进行可视化列编辑. 使用Ultra Edit同样可以方便的进入列编辑模式,只需要按下 ...

  5. vim列编辑

    命令模式下:ctrl + v(我在gvim,win7中是ctrl +shift + q)进入列编辑模,选中要编辑的行(j 上,k下) 输入 “I” (大写的 I,光标定位到选中的第一行),输入要编辑的 ...

  6. Sublime 3 如何使用列编辑模式

    前言 作为一名运维人员,文本IDE的列编辑模式对工作效率的提升很大.以前总用UE,觉得UE的列编辑模式设置很人性化(alt+c).后来接触了sublime,个人觉得它的列编辑模式使用对比UE略有差距. ...

  7. vim 的编辑模式 命令模式

    1.vim的编辑模式    进入编辑模式 按键: a  i  o a: 表示在光标当前的,后面开始插入,写数据 i : 则表示 前面 . o : 表面在光标当前的,下一行开始写入数据. O : 大写的 ...

  8. 关闭QtCreator的vim风格编辑模式

    今天不小心点到了键盘的快捷键Alt+V,使QtCreator进入了vim风格编辑模式,导致快捷键拷贝粘贴都不正常,找了下资料才发现是这个问题.具体操作如下: 打开QtCreator去掉下列位置的勾选或 ...

  9. IDEA terminal无法从vim的编辑模式转换为命令模式

    Git 修改最后一次的commit历史记录:https://www.baidu.com/link?url=2WF8yFd0iBuVmXLWfutmSoXa12K9D143e_B0A3PTYYHEP9r ...

随机推荐

  1. node lesson4--eventproxy不懂

    var express = require('express'); var superagent = require('superagent'); var cheerio = require('che ...

  2. 1 tcp/ip协议

    该协议是一个协议族,并是说具体某个协议下图中的协议都属于tcp/ip协议.他是用来规范互联网中电脑间数据传输的. 该协议可以分为4层或者7层 4层,实际层数: 链路层 网络层 传输层 应用层 7层,理 ...

  3. 用 Expression Blend 创建酷炫的 Button

    原文:用 Expression Blend 创建酷炫的 Button 原文:Creating "Cool" Buttons with Expression Blend Author ...

  4. Efficient store queue architecture

    One embodiment of the present invention provides a store queue that applies the stores to a memory s ...

  5. WPF 3D Transparency Depth-Order Sorting

    原文:WPF 3D Transparency Depth-Order Sorting   Just a quick post here - When making WPF 3D apps, trans ...

  6. Linux性能测试 strace命令

    1  功能说明 strace 命令是一种强大的工具 ,  能够显示任何由用户空间程式发出的系统调用 .  strace 显示这些调用的参数并返回符号形式的值 .  strace 从内核接收信息 ,  ...

  7. C#进程创建监控

    关于c#进程创建监控的文章大多都是“遍历一次进程用if去判断存在或否”这样的方法,我觉得体验不是很好.这几天写的一个软件正好需要实时监控进程创建的模块,在网上找到了很不错的方法,整理一下分享出来给大家 ...

  8. 讨论2-sat建设和解决问题

    2-sat问题是一种常见的问题.给定若干个01变量,变量之间满足一些二元约束,求是否有解存在.若存在,给出可行解或依照字典序给出最优解. 以下给出与其相应的图论模型:给每一个变量i设立2个点,我的习惯 ...

  9. JS加载&解析XML文件,浏览器兼容

    #  JS加载XML,浏览器之间有差异,代码如下 this.createXMLDom = function() { var xmldoc; var xmlFile = "XXXXXXXXX. ...

  10. Linux之tail命令实时收集[纠正误解]

    tail [OPTION]... [FILE]... -c, --bytes=K            output the last K bytes; alternatively, use -c + ...