最近在做一些无聊的客户化OSD,发现结合vim的一些命令更简单。

1、全选:ggVG(V:shift+v)

解释是:gg 让光标移到首行,在vim才有效,vi中无效;V 是进入Visual(可视)模式;G  光标移到最后一行
选中内容以后就可以其他的操作了,比如:
d  删除选中内容
y  复制选中内容到0号寄存器
"+y  复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用

也可以用ggdG将文件所有内容清空;ggyG将所有内容复制;

2、对齐:gg=G

将所有内容自动对齐,当然只是整体上,还需要调试。

Ctrl+v进入VISUAL BLOCK模式,按上下左右即可选择。选择好了,再用shift+>shift+<可进行缩进或反缩进。

3、提取字符。

做OSD时需要将strings里的字符提取出来,如:

  1 <?xml version="1.0" encoding="utf-8"?>
2
3 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
4 <string name="settings_label">"System Settings"</string>
5 <string name="network_label_text">"Network"</string>
6 <string name="display_label_text">"Display"</string>
7 <string name="sound_label_text">"Sound"</string>
8 <string name="others_label_text">"Others"</string>
9
10 <string name="wifi_list_title">"Wireless network list"</string>
11 <string name="scanning_ap">"Scanning network,please wait..."</string>
12 <string name="wifi_connected">"Wireless network connected"</string>
13 <string name="wifi_disconnected">"Wireless network disconnected"</string>

首先,在VIM中打开,进入命令模式,

用:%s/^\s+\/把每行的空格去掉(如果有);

用:%s/<string name="/把每行的<string name="去掉

用:%s/">"/\t\t\t\t把中间的">"替换成table,隔开字符。

再用前面说的选择,复制,就出来了!

vim选择命令的更多相关文章

  1. vim常用命令(iOS)

    iOS下vim的使用: vim 的三种模式: .一般模式(默认) .插入模式(写文字) .命令行模式(保存) 各种模式的功能区分如下: .一般模式:控制屏幕光标的移动,字符和光标的删除,移动复制某区段 ...

  2. vim常用命令总结 (转)

    vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束. V    从光标 ...

  3. [转]vim常用命令

    [转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...

  4. VIM编辑命令的技巧

    vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束. V    从光标 ...

  5. vim的命令集合

    命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令.启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并 ...

  6. vim常用命令总结 (转)

      在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format ...

  7. vi/vim高级命令集粹

    vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有 ...

  8. 神器Vim之命令介绍

    前天晚上看casa直播项目的组件化,不仅了解了如何快速对现有项目进行组件化,以及进一步不断迭代,实现完全组件化的过程:同时,也被casa的vim技能的熟练程度所震撼.早就听说,vim是unix系统上文 ...

  9. Linux—vim常用命令

    vim常用命令: 1. 键入i进入编辑模式2. esc进入命令模式3. a,进入编辑模式3. b,光标移动到单词前,end,光标移动到行尾4. home光标移动到行首5. cc,删除当前行,并进入编辑 ...

随机推荐

  1. 再谈OPENCV(转)

    转自:http://blog.csdn.net/carson2005/article/details/6979806 尽管之前写过一篇关于OpenCV的介绍(http://blog.csdn.net/ ...

  2. simple_tag

    from django.template import Library register = Library() @register.simple_tag def func(arg): return ...

  3. 数据库中INFORMATION_SCHEMA的说明及使用

    第一个查询看看库里有多少个表,表名等select * from INFORMATION_SCHEMA.TABLES information_schema这张数据表保存了MySQL服务器所有数据库的信息 ...

  4. Executor

    一.为什么需要Executor?为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制.他们都在java.util.concurrent包中,是JDK并发包的核 ...

  5. Asp.net Vnext 模块化实现

    概述 本文已经同步到<Asp.net Vnext 系列教程 >中] 在程序中实现模块化可以加快开发效率,通过替换模块实现升级. 架构 vnext 没有 Virtualpathprovide ...

  6. day1作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 思路: (1)首先定义好三级菜单字典: (2)提 ...

  7. day1作业二:多级菜单操作(函数实现)

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 本示例的三级菜单是一个yaml文件格式,格式如下 ...

  8. PHP编程基础学习(一)——数据类型

    PHP一共支持8种原始类型,其中: 4种标量类型: boolean(布尔型) integer(整型) float/double(浮点型) string(字符串型) 两种复合类型: array(数组) ...

  9. web服务端安全之SQL注入攻击

    一.SQL注入攻击的原理攻击者在HTTP请求中,注入恶意的SQL代码,并在服务端执行.比如用户登录,输入用户名camille,密码 ' or '1'='1 ,如果此时使用参数构造的方式,就会出现 ' ...

  10. WSGI剖析

    在一个 HTTP 请求到达服务器时, 服务器接收并调用 web 应用程序解析请求, 产生响应数据并返回给服务器. 这里涉及了两个方面的东西: 服务器(server)和应用程序(application) ...