拾遗:vim 快捷键设置
~/.vimrc
零、批量注释与反注释
- :sp / :vsp 横向 / 纵向拆分窗口
- :e 打开新文件
- zc:拆叠代码 / zo:展开代码
set foldmethod=marker "代码拆叠模式:zf10G(从当前行拆叠到第10行)、10zf+(从当前行位置向下拆叠10行)、10zf-(从当前行向上拆叠10行)、zf%(折叠到对应的配对括号处,大括号、中括号、小括号等)、zd(删除拆叠)
注释:
- ctrl + v 进入中视化模式,选中要注释的行
- shift + i 进入 insert 模式,输入注释标识符,如 "//"
- 按 ESC
反注释:
- ctrl + v 进入中视化模式,选中要反注释的行
- shift + i 进入 insert 模式,删除注释标识符
- 按 ESC
一、vim 系统快捷键
- <C-O> 跳回上一个位置
- <C-I> 跳到下一个位置
二、vim 自定义快捷键
map 类别:
- 用于普通模式: 输入命令时。
- 用于可视模式: 可视区域高亮并输入命令时。
- 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。
- 用于插入模式: 也用于替换模式。
- 用于命令行模式: 输入 ":" 或 "/" 命令时。
- Normal Mode 也就是最一般的普通模式,默认进入vim之后,处于这种模式。
- Visual Mode 一般译作可视模式,在这种模式下选定一些字符、行、多列;在普通模式下,可以按v进入。
- Insert Mode 插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。
- Select Mode 选择模式。用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。
- Command-Line 命令行模式,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令。
Map 前缀:
- nore 表示非递归。递归的映射:如果键a被映射成了b,c又被映射成了a,如果映射是递归的,那么c就被映射成了b。
- n 表示在普通模式下生效
- v 表示在可视模式下生效
- i 表示在插入模式下生效
- c 表示在命令行模式下生效
普通模式映射:
- map 命令格式:
:map {lhs} {rhs}
其含义是,在:map作用的模式中把键系列 {lhs} 映射为 {rhs},{rhs}可进行映射扫描,也就是可递归映射。 - noremap :noremap和:map命令相对,作用模式和命令格式都相同,只不过不允许再对{rhs}进行映射扫描,也就是{lhs}定义后的映射就是{rhs}的键序列,不会再对{rhs}键序列重新解释扫描。
- unmap :unmap是对应取消:map绑定的{lhs},作用模式相同,命令格式 :unmap {lhs}。
- mapclear :mapclear时对应取消所有:map绑定的。
仅用于普通模式:
- :nmap是:map的普通模式板,也就是说其绑定的键只作用于普通模式。
- :nnorempa和:nmap的关系和:noremap和:map的关系一样,只是:nmap的非递归版
- :nunmap和:nmap的关系和:unmap和:map的关系一样,取消:nmap的绑定。
- :nmapclear是对应取消所有:map绑定。
键表:
- <k0> - <k9> 小键盘 0 到 9
- <S-...> Shift+键
- <C-...> Control+键
- <M-...> Alt+键 或 meta+键
- <A-...> 同 <M-...>
- <Esc> Escape 键
- <Up> 光标上移键
- <Space> 插入空格
- <Tab> 插入Tab
- <CR> 等于<Enter>
<Leader>和mapleader变量:
mapleader变量对所有map映射命令起效,它的作用是将参数<leader>替换成mapleader变量的值,比如:
:map <Leader>A oanother line<Esc>
如果mapleader变量没有设置,则用默认的反斜杠代替,因此这个映射等效于:
:map \A oanother line<Esc>
意思时输入\A键时,在下一行输入another line并返回到普通模式。
如果设置了mapleader变量,比如:
let mapleader = ","
那么就等效于:
:map ,A oanother line<Esc>
拾遗:vim 快捷键设置的更多相关文章
- <顶>vim快捷键映射Map使用
问题描述: 使用vim中的快捷键映射map,可以自定义快捷键 问题解决: (1)vim模式 (2)map前缀 (3)删除映射Map (4)使用示例 (5)查看快捷键映射 命令行---:verbose ...
- 必须熟悉的vim快捷键操作
转载请表明出处http://www.dabu.info/?p=801 Vim/Vi 没有菜单,只有命令 Vim/Vi 工作模式介绍:插入模式 和 命令模式 是vi的两个基本模式.——插入模式 ,是用 ...
- Linux Ubuntu从零开始部署web环境及项目 -----快捷键设置(四)
上篇将了如何在linux部署web项目,这篇介绍如何设置常用快捷键 一.路径快捷键设置 临时快捷键设置: 执行XShel,输入: alias 'aa=cd /etc/sysconfig' ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- vim快捷键收藏版
总述 附加一篇介绍文哈,关于vim快捷键的介绍.vim和vscode 到底谁更好用,大家争得不可开交,然后我就在vscode里面装了一个vim插件,完美得解决了这个问题,用完之后觉得真香,所以我就整理 ...
- 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置
简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...
- PhpStorm 8.x/9.x 快捷键设置/个性化设置,如何多项目共存?如何更换主题?
1."自定义"常用快捷键(设置成跟Eclipse差不多) 按照路径:File -> Settings -> Appearance & Behavior -> ...
- Allegro 快捷键设置
一.快捷键设置 Allegro可以通过修改env文件来设置快捷键,这对从其它软件如AD或PADS迁移过来的用户来说,可以沿用以前的操作习惯,还是很有意义的. Allegro的变量文件一共有2个:一个是 ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)
史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
随机推荐
- C/s模式&&B/S模式
C/s模式:是客户端/服务器(Client/Server)模式,主要指的是传统的桌面级的应用程序.比如我们经常用的信息管理系统. C/S 客户端/服务器 例如QQ,网络游戏,需要下载客户端才能访问服务 ...
- 2019牛客多校第⑨场E All men are brothers(并查集+组合数学)
原题:https://ac.nowcoder.com/acm/contest/889/E 思路: 做并查集,维护每个集合大小,初始化操作前的总方案数,每次合并两个集合时减少的数量=合并的两个集合大小相 ...
- Apache 2.4.12 64位+Tomcat-8.0.32-windows-x64负载集群方案
上次搞了Apache 2.2的集群方案,但是现在自己的机器和客户的服务器一般都是64位的,而且tomcat已经到8了.重新做Apache 2.4.12 64位+Tomcat-8.0.32-window ...
- js node.children与node.childNodes与node.firstChild,node,lastChild之间的关系
博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/11/06/js-node-children%e4%b8%8enode-childnodes ...
- python中使用动态库
首先,创建一个简单的动态库编程生成dll.so: gcc -fPIC -O2 -shared dll.c -o dll.soC文件:dll.c 如下 #include <stdio.h&g ...
- 從nasm assembly看函數參數傳遞
在淘宝定了<<C++程序设计语言(特别版)>> 后天才能到货.从网上下了<<C++ Primer中文版>>的电子书看看.找找C++的感觉先. 先看看基本 ...
- Pytest 通过文件名类名方法执行部分用例
• 场景:只执行符合要求的某一部分用例,通过类与方法的命名实 现.通常编写测试方法时 • 解决:直接输入文件名,类名 pytest test_class_01.py • pytest -v -s te ...
- 《node.js开发指南》partial is not defined的解决方案
由于ejs的升级,<node.js开发指南>中使用的 partial 函数已经摒弃,使用foreach,include代替 原来的代码是: <%- partial('listitem ...
- 使mysql数据库支持简体中文
永久支持简体中文[root@localhost ~]# vim /etc/my.cnf添加如下四行:[client]default-character-set=utf8 [mysql]default- ...
- shell script 学习
终于来到了shell脚本的学习,貌似很牛叉. shell script鸟叔解释:利用shell的功能写的一个program,使用纯文本文件,将一些shell语法和指令写在里面,搭配正则表示法,管线命令 ...