VIM整理文档具有非常好的效果,我最近由于开发的需要,在网上收集了大量有关中中医的文章,需要整理优化调整成需要的格式,存入数据库中供前端调用。使用过WORD,excel等工具都不尽如意,后来使用VIM,真是又快又方便。
1.获取文件特别是中文档会有很多编码问题而显示不对,统一使用utf8编友。查看文档编码并设置文件上应编码utf8
获取编码
set fileencoding
设置编码及语言
set encoding=utf-8
set langmenu=zh_CN.UTF-8
让vim自动识别文件编码(可以自动识别UTF-8或 者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适 的编码,就用latin-1(ASCII)编码打开。
set encoding=utf-8 fileencodings=utf-8
2.以指定的编码打开某文件
如打开windows中以ANSI保存的文件
vim file.txt -c "e ++enc=GB18030"
在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
3.查看文件格式是win还是linux,换行符不同,服务器以linux和unix为主,减少中间环节,改为unix
:set fileformat?
设置文件格式为 unix
:set fileformat=unix
4.偶尔修改一下十六进制和库和应用程序,Vim下以16进制查看, 修改文本
vim -b filename
在命令行模式下, 输入以下命令:
:%!xxd
修改完成以后,同样在命令行模式下使用以下命令可以返回正常的格式:
:%!xxd -r
注意,只有左侧16进制被修改的部分会生效,对于右侧字符的修改不会产生效果。

5.设置显示行号
set number
6.存入数据时,一些无用的不可见字符会影响存储和解析,设置显示不可见字符,然后去掉
set invlist
7自己定义不可见字符的显示方式
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
set list
4.有些情况下单行显示更清晰,更容易把握文件之结构,设置单行,取消单行
直接在vi的命令模式中输入:
set wrap
如果想取消,就输入:
set nowrap
5.我会把文件内容转为数组,现使用程序写入数据库,删除空格行会找数组更紧凑
非编辑状态下输入:g/^$/d

6.删除行首空格,这个用于对齐:
非编辑状态下输入:%s/^\s*//g

7.删除行尾空格:
非编辑状态下输入:%s/\s*$//g

8.排序
:sort
9合并两行
普通模式下,按 J (大写),助词符是(Join)。会把下一行合并(join)到当前行上来
使用vim编辑:将文本复制进来
先合并两行数据
:g/^/j
10缩进
全部格式化 : gg=G
对当前行格式化(缩进): ==
对以下多行格式化(倍数操作): [count] ==
选择多行后, 执行 等号命令 =
11shift+v 转到可视模式
shift+g 全选
12.ddp 光标所在行跟下面一行进行交换
xp 光标所在的字符后面一个字符进行交换
13在每行行首或行尾添加/删除内容
添加
在每行行首添加相同的内容:

:%s/^/要添加的内容


每行行尾添加相同的内容:

:%s/$/要添加的内容

利用正则表达式删除代码段每行的行号
:%s/^\s*[0-9]*\s*//gc

其中,^表示行首,$表示行尾,\s表示空格,[0-9]表示0~9的数字,*表示0或多个,%s/^\s*[0-9]*\s*//gc的意思是将每行以0或多个空格开始中间包含0或多个数字并以0或多个空格结束的字符串替换为空。

14重复上次普通命令
. 只有一个点

@: 重复上次ex命令。
@@ 重复执行。
15代码块左移,右移
 <<
>>
16删除空行

:g/^\s*$/d

简单解释一下:
g :全区命令
/ :分隔符
^\s*$ :匹配空行,其中^表示行首,\s表示空字符,包括空格和制表符,*重复0到n个前面的字符,$表示行尾。连起来就是匹配只有空字符的行,也就是空行。
/d :删除该行

1.  替换当前行中的内容:    :s/from/to/    (s即substitude)
        :s/from/to/     :  将当前行中的第一个from,替换成to。如果当前行含有多个
                            from,则只会替换其中的第一个。
        :s/from/to/g    :  将当前行中的所有from都替换成to。
        :s/from/to/gc   :  将当前行中的所有from都替换成to,但是每一次替换之前都
                            会询问请求用户确认此操作。

注意:这里的from和to都可以是任何字符串,其中from还可以是正则表达式。

2.  替换某一行的内容:      :33s/from/to/g
        :.s/from/to/g   :  在当前行进行替换操作。
        :33s/from/to/g  :  在第33行进行替换操作。
        :$s/from/to/g   :  在最后一行进行替换操作。

3.  替换某些行的内容:      :10,20s/from/to/g
        :10,20s/from/to/g   :  对第10行到第20行的内容进行替换。
        :1,$s/from/to/g     :  对第一行到最后一行的内容进行替换(即全部文本)。
        :1,.s/from/to/g     :  对第一行到当前行的内容进行替换。
        :.,$s/from/to/g     :  对当前行到最后一行的内容进行替换。
        :'a,'bs/from/to/g   :  对标记a和b之间的行(含a和b所在的行)进行替换。
                                其中a和b是之前用m命令所做的标记。

4.  替换所有行的内容:      :%s/from/to/g
        :%s/from/to/g   :  对所有行的内容进行替换。

5.  替换命令的完整形式:    :[range]s/from/to/[flags]
        5.1 s/from/to/
            把from指定的字符串替换成to指定的字符串,from可以是正则表达式。
        5.2 [range]
            有以下一些表示方法:
            不写range   :  默认为光标所在的行。
            .           :  光标所在的行。
            1           :  第一行。
            $           :  最后一行。
            33          :  第33行。
            'a          :  标记a所在的行(之前要使用ma做过标记)。
            .+1         :  当前光标所在行的下面一行。
            $-1         :  倒数第二行。(这里说明我们可以对某一行加减某个数值来
                            取得相对的行)。
            22,33       :  第22~33行。
            1,$         :  第1行 到 最后一行。
            1,.         :  第1行 到 当前行。
            .,$         :  当前行 到 最后一行。
            'a,'b       :  标记a所在的行 到 标记b所在的行。

%           :  所有行(与 1,$ 等价)。

?chapter?   :  从当前位置向上搜索,找到的第一个chapter所在的行。(
                            其中chapter可以是任何字符串或者正则表达式。
            /chapter/   :  从当前位置向下搜索,找到的第一个chapter所在的行。(
                            其中chapter可以是任何字符串或者正则表达式。

注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏
            移量。

5.3 [flags]
            这里可用的flags有:

无      :  只对指定范围内的第一个匹配项进行替换。
            g       :  对指定范围内的所有匹配项进行替换。
            c       :  在替换前请求用户确认。
            e       :  忽略执行过程中的错误。

注意:上面的所有flags都可以组合起来使用,比如 gc 表示对指定范围内的
            所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

VIM快速文档整理技巧相关推荐

  1. Word 2003 长篇文档排版技巧

    简介 市场部经常要出各种分析报告,一写就是洋洋洒洒几十页.文字功底深厚的小王写东西自然不在话下,然而每每困扰他的却是排版的问题,每次都要花大量的时间修改格式.制作目录和页眉页脚.最头疼的是上司看完报告 ...

  2. django+nginx+uwsgi项目部署文档整理

    django+nginx+uwsgi项目部署文档整理 参考文章:https://blog.csdn.net/qq_42314550/article/details/81805328 一.python安 ...

  3. NodeJS-001-Nodejs学习文档整理(转-出自http://www.cnblogs.com/xucheng)

    Nodejs学习文档整理 http://www.cnblogs.com/xucheng/p/3988835.html 1.nodejs是什么: nodejs是一个是javascript能在后台运行的平 ...

  4. Word长篇文档排版技巧

    市场部经常要出各种分析报告,一写就是洋洋洒洒几十页.文字功底深厚的小王写东西自然不在话下,然而每每困扰他的却是排版的问题,每次都要花大量的时间修改格式.制作目录和页眉页脚.最头疼的是上司看完报告后让他 ...

  5. Word 2003 长篇文档排版技巧(二)

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  6. php操作pdf文档输出,PHP生成PDF文档实用技巧

    PHP生成PDF文档实用技巧 实际工作中,我们要使用PHP动态的创建PDF文档,目前有许多开源的PHP创建PDF的类库,今天我给大家来介绍一款优秀的PDF库,它就是TCPDF,TCPDF是一个用于快速 ...

  7. python排版word文档命令方法大全_简易常用Word文档使用技巧方法大全(超全).doc

    PAGE Word文档使用技巧方法大全 Word2000.2003.2007.2010快捷键使用大全总结 常用快捷键快捷键 作用 一.字体类Ctrl+B 使字符变为粗体Ctrl+I 使字符变为斜体Ct ...

  8. vim 写文档 (自身功能tags, txt2tags生成网页pdf等)

    Table of Contents Vim进阶索引[7]::TAGS 1 基本的tags用法 2 tags文件格式 3 相关命令 4 tags进阶 4.1 编写/转换为Vim文档 4.2 exuber ...

  9. Word 2003 长篇文档排版技巧(一)

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

最新文章

  1. CV05-ResNet笔记
  2. MyBatis 插入数据库返回主键
  3. 关于GC.Collect在不同机器上表现不一致问题
  4. 我的世界有宠物系统的服务器,我的世界1.6.4宠物战争服务器客户端
  5. aswing JTable用法
  6. webserver之日志系统
  7. CCD的基本的基本知识介绍(转载)
  8. 为什么我在实时编码时失败了?
  9. matlab 画x a的直线方程式,matlab画如x=a和y=b这种水平线和垂线的命令是什么,谢谢...
  10. 傻瓜式抠图工具,不用photoshop也能搞定抠图!
  11. 国内访问英文版维基百科地址
  12. nginx 返回动态Html,Nginx动态、静态分离,Nginx配置中做适配
  13. ios11 mjrefresh 上拉加载更多怎么停不下来了??
  14. Linux下安装docker与kubernetes(k8s)
  15. 关于随机数,真随机,伪随机
  16. Tobii pro lab学习笔记3_Metrics统计指标
  17. import express from 'express'; ^^^^^^^ SyntaxError: Unexpected identifier at Module._com
  18. python安装matplotlib库三种失败情况
  19. navicat怎么备份数据和同步两个数据库
  20. 酷狗音乐应用在计算机里怎么拖出来,电脑如何使用酷狗音乐剪辑音乐|电脑使用酷狗音乐剪辑音乐的方法...

热门文章

  1. 程序员的新年计划,你选择几个?
  2. 数值计算方法-算法设计及其MATLAB实现
  3. Yii2.0-发邮件找回密码
  4. 《个体软件过程》—第8章8.2节认真制订承诺
  5. 安卓以太网共享4G网络方法
  6. 东北大学秦皇岛分校acm俱乐部第一次双周赛
  7. Piggy-Bank(最小完全背包问题)
  8. Waves – 赞!超炫交互体验的点击动画效果
  9. 属性加密(ABE)基础知识
  10. 【已解决】IE无法上网、有道云PC客户端无连接