VIM命令行模式下的相关知识
当按下:键时, Vim会切换到命令行模式;
重复上次执行的EX命令,只需按@:就可以;
在一行或多个连续行执行命令
很多的EX全天候可以指定操作范围,如行号,位置标记等;
以:print命令作为演示,下面:
用行号作为地址:
:3p用行号指定一个范围,形式为: :{start},{end}
:3,6p也可以用高亮选区指定范围:
当我们选中选区以后,按 : 后,会出现下面的符号:
:'<,'>其实,符号 ‘< 表示高亮选区首行的位置标记,而 ‘> 代表高亮选区的最后一行的标记; 注意: 这些标记在退出了可视模式后也是仍然存在的;
用模式指定范围:
:/开始的内容/,/结尾的内容/p这样,就标记了之间的内容了,也包括了两个开头结尾;
另个可以在上面的基础上用位置偏移对范围进行修正:
即:{address}+n, 其中 n 可以为1,2,3等;
最后,总结:
1 文件的第一行;
$ 文件的最后一行;
0 虚拟行,位于文件第一行上方;
. 光标所在行;
'm 包含位置M的行;
'< 高亮区的起始行;
'> 高亮区的结束行;
% 整个文件(相当于:1,$的简写模式);
使用:t 命令进行复制:
:copy命令的简写形式为:t, 也可以简写为co;
:move命令的简写形式为:m
它的格式为: [range]copy{address} , 表示:为把指定范围内的内容复制到指定的address的下方; 当range 表示当前行时,可以省略 .
如:
:6t. 把第六行提制到当前行的下方;
:t6 把当前行复制到第6行的下方;
:t. 为当前行复制一个副本;
:t$ 把当前行提制到文本的结尾;
:'<,'>t0 把高亮区复制到文件开头;
使用:m 命令进行移动:
用法与:t 的作法相同;
使用:normal 命令在指定范围内执行普通模式下的命令:
它的格式为: [range]normal 普通模式下的命令
如:
# 在指定范围内的每一行后面加上"love you"
:3,10normal Alove you注意:在执行指定的普通模式之前,Vim会把光标移到该行的行首,所以呢,光标的位置总是固定的, 不用担心;
# 如:在每一行之前插入 // ,可以写作:
:3,10normal I//
#也可以写作:
:3,10normal i//
自动补全EX命令:
当输入部分EX命令时,我们按Tab键,它们自己补全命令,依次按Tab,会依次填充补全项,按shift-Tab 返回遍历;
如:当补全的候选项为 abc, ade, aeq时, 当输入了a时,我们按Tab键,全补全abc,再次按Tab键,会补全ade,如果按shift-Tab键,会返回补全abc。
按 ctrl-d 键,会列出所以可用的选项;
把当前的单词或字符串插入命令行:
ctrl-r + ctrl-w, 可以把光标下的单词插入到命令行;
ctrl-r + ctrl-a, 可以把光标下的字符串插入到命令行;
回顾命令历史:
VIm会记录 EX 命令的历史 ,它也会记录查找命令的历史;
当我们输入 : 或 / 以后,按up或down键(上下键),就可以翻看到历史的输入;
另我们输入了一小部分以后,按up或down键(上下键),就可以翻以 输入的这一小部分开头的 历史的输入;意思就是它可以进行命令过滤;
输入 q: 会进入命令行窗口;可以看到所以的历史记录了;
在输入命令的过程中,也可以通过 ctrl-f 来进入命令历史窗口;
输入q/ : 打开了查找命令历史的命令行窗口;
执行Shell中的命令:
方法1: :!{cmd} 它可以运行单条的shell命令;
如:
#在vim中的命令行中,%代表了当前文件名(当表示范围时,表示全部内容)
:!./% #运行当前文件;:!pwd #打印当前路经;方法2: :shell 启动一个交互的shell会话;
用exit 退出;
方法3: 我们可以在vim 中 用 ctrl-z键 把进程挂起,然后用fg键 唤醒;(这不是vim 具有的,而是系统)
把缓冲区内容作为标准输入与输出:
:read !{cmd} 在shell中执行{cmd},并把其输出插入到光标下方;
:[range]write !{cmd} 在shell中执行{cmd},并以[range]作为输入;
:[range]!{filter} 使用外部程序{filter}过滤指定的[range];其中,read 与write 都可以写为 r 和w。
批量运行EX命令:
我们可以把EX命令写到一个脚本里面,然后批量加载运行它们;
方法:假如写在了 batch.vim中, 然后呢,用:source来执行这个脚本;
了解更多,见 :h source
参考:VIM实用技巧,第二版,作者:Drew Neil;翻译:杨源, 车文隆;
VIM命令行模式下的相关知识的更多相关文章
- 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...
- Linux在终端命令行模式下智能补全功能以及组合键
linux命令行下也有很多热键(快捷键).先来看看tab键 1.如果想看看linux下以c开头的命令可直接在命令行下敲入c然后连续敲两次tab,再选择y,会显示所有以c开头的命令. 2.涉及到文件时, ...
- mysq在命令行模式下执行shell命令
mysql可以在命令行模式下执行shell命令 mysql> help For information about MySQL products and services, visit: htt ...
- php命令行模式下加载的php.ini文件可能和web模式下加载的php.ini不一致
php命令行模式下加载的php.ini文件可能和web模式下加载的php.ini不一致 命令行下查看加载的php.ini的路径: php -i|grep php.ini web模式下查看: <? ...
- mplayer命令行模式下的使用方法【转】
mplayer命令行模式下的使用方法http://hi.baidu.com/lovehack2006/blog/item/162ef9778214111eb051b9d4.htmlMPlayerMPl ...
- 在命令行模式下查看Python帮助文档---dir、help、__doc__
在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...
- Linux命令行模式下安装VMware Tools详细步骤
在Linux命令行模式安装VMware Tools 方法/步骤1: 首先启动CentOS 7,在VMware中点击上方"VM",点击"Install VMware Too ...
- 命令行模式下 MYSQL导入导出.sql文件的方法
一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=“:path\mysql\bin;”其中path为MYSQL的安装路径.二.简 ...
- windows命令行模式下无法打开python程序解决方法
今天刚开始学Python,首先编写一个简单地hello world程序,想在命令行模式运行,结果出现下面: 经过一番思考,发现用cd命令可以解决这件事,看下图: 这样就解决了.
随机推荐
- C++中的友元函数和友元类
C++中的友元函数主要应用于以下场景: 友元函数 第一种场景 代码中有一个全局函数,该函数想要去访问某个类的成员变量(该类的成员变量是private的,且该类并未提供任何获取获取私有成员变量的publ ...
- 挂载ios,error tip:mount: wrong fs type, bad option, bad superblock on /dev/loop0,
挂载ios,tip: mount -t iso9660 -o loop 111.iso /isofiles 有可能是-t参数有问题,把-t参数去掉,然后挂载,就成功了
- Nginx配置优化参考
Nginx配置优化参考 ...
- c++map的用法
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数: map<stri ...
- 【ActiveMQ】Spring Jms集成ActiveMQ学习记录
Spring Jms集成ActiveMQ学习记录. 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.REL ...
- 【Acm】八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 其解决办法和我以前发过的[算法之美—Fire Net:www.cnblogs.com/lcw/p/3159414.html]类似 题目:在8 ...
- python 发送邮件 带附件
# coding:utf-8 # __author__ = 'Mark sinoberg' # __date__ = '2016/5/26' # __Desc__ = 实现发送带有各种附件类型的邮件 ...
- Asp.net 从客户端中检测到有潜在危险的Request.Form值
解决方法: 在Web.config文件里找到<httpRuntime>节点,然后修改requestValidationMode="2.0" 修改结果如下: <sy ...
- mysql防止误删除的方法
为了防止在更新和删除的时候,没有写where条件而对全部数据进行操作,mysql提供了一个参数来防止此情况的发生 需要在启动mysql的时候,增加参数--i-am-a-dummy含义是我是新手,或者使 ...
- 未能加载文件或程序集“System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。系统找不到指定的文件。
问题:WPF未能加载文件或程序集"System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" ...