ideavim与vim相关笔记

本文主要用于记录一些使用 vim/ideavim 开发的心得笔记,为了速度也为了折腾 强烈的个人向

笔记

ideavim 与 vim 混杂,无序但使用二级标题做大分类,当字典用,默认 vim 和 ideavim 通用,不通用会标记出来

文件操作

刷新重载当前打开的文件 :e/:e!

范围操作

某些普通模式的动作命令后面可以追加一些表示范围的指令,表示该动作将作用在整个范围上。这类命令常用的有:

  • d<范围> - 删除一定范围内的文本

  • c<范围> - 删除一定范围内的文本并进入插入模式

  • y<范围> - 将范围内的文本放入 0 号和"号注册栏

  • v<范围> - 选择范围内的文本

  • =<范围> - 自动缩进范围内的文本

  • gU<范围> - 将范围内的字符转换为大写

  • gu<范围> - 将范围内的字符转换为小写

  • <范围> - 将范围中的内容缩进一格

  • <<范围> - 将范围中的内容取消缩进一格

常用的范围指令有:

空格 - 光标所在位置字符。(例如 gU 空格 - 将光标位置字符转为大写)

重复某些动作命令 - 光标所在行。 (例如 dd 删除一行,yy 复制一行,cc 删除一行文本并开始插入,>> 当前行缩进一格,==自动缩进当前行)

$ - 从光标位置到行尾

^ - 从光标位置到行首,不包含缩进空白

0 - 从光标位置到行首,包含缩进空白

gg - 从光标位置到文件开头

G - 从光标位置到文件结尾

% - 从光标位置到另一边匹配的括号

f<字符> - 从光标位置到光标右边某个字符首次出现的位置,包括该字符

F<字符> - 从光标位置到光标左边某个字符首次出现的位置,包括该字符

t<字符> - 从光标位置到光标右边某个字符首次出现的位置,包括该字符

F<字符> - 从光标位置到光标左边某个字符首次出现的位置,包括该字符

/正则表达式 - 从光标位置到下一个匹配正则表达式的位置(跨行)

?正则表达式 - 从光标位置到上一个匹配正则表达式的位置(跨行)

aw - 一个单词加一个空格 (a 可理解为“一个”,下同)

iw - 一个单词 (i 可理解为 in,下同)

a" - 一个字符串包括双引号

i" - 一个字符串内部文本

a< - 一组< >包含的文本,包括< >号本身

同理类推: i<, a[, i[, a(, i(

注意:真正 vim 中的 it 范围(一对 xml 标签内部)在 ideaVim 中不生效。

复制粘贴

用 y 命令将文本存入寄存器后,如果想在别处替换原有内容,可以先用 v 命令选中原有内容,然后用 p 命令粘贴。但第一次粘贴后,默认的寄存器"将被替换为刚刚删除的内容。如果要再次粘贴之前复制的内容,需要使用 "0p 命令组合来复制。也可以进入插入模式后用 Ctrl+r 0 来复制,例如 ciw<Ctrl+r>0 命令组合将用粘贴内容替换光标处的一个单词,并停留在插入模式。

重复操作

普通模式下按. (小数点)可重复上一次的修改操作 & - 重复上一次的:s 替换命令 @@ - 重复上一次执行的宏

vim 配置

execute pathogen#infect() call vundle#begin() call vundle#end() syntax on
execute pathogen#infect()
call vundle#begin()
call vundle#end()
syntax on
" 横竖高亮
set cursorcolumn
set cursorline
filetype plugin indent on
set encoding=utf8
set nu
set rnu
set ruler
set t_Co=256
set cindent
set laststatus=2
set hlsearch
set expandtab
set smartindentset showmatch
set nocompatible
set tabstop=2
set softtabstop=2
set shiftwidth=2
set autoindent
autocmd StdinReadPre * let s:std_in=1
" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
map <F3> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" set completeopt=longest,menu	"让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
autocmd InsertLeave * if pumvisible() == 0|pclose|endif	"离开插入模式后自动关闭预览窗口" set color for nerd tree
" NERDTress File highlighting
function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg)exec 'autocmd filetype nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifgexec 'autocmd filetype nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#'
endfunction
call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515')
call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515')
call NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515')
call NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515')
call NERDTreeHighlightFile('css', 'cyan', 'none', 'cyan', '#151515')
call NERDTreeHighlightFile('coffee', 'Red', 'none', 'red', '#151515')
call NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515')
call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515')

ideavim 配置:

let mapleader=";"
noremap <leader>k gt
noremap <leader>j gT
noremap <leader>h :action Back<CR>
noremap <leader>l :action Forward<CR>
noremap <leader>v :action VimVisualToggleBlockMode<CR>
noremap <leader>fs :action FileStructurePopup<CR>noremap <leader>ga :action GotoAction<CR>
noremap <leader>gc :action GotoClass<CR>
noremap <leader>gd :action GotoDeclaration<CR>
noremap <leader>gi :action GotoImplementation<CR>
noremap <leader>gs :action GotoSuperMethod<CR>
noremap <leader>gt :action GotoTest<CR>noremap / :action Find<CR>
noremap f :action AceAction<CR>
noremap F :action AceTargetAction<CR>
set rnu
set nu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么配置了安全组还是有攻击进来?

面对DDoS攻击&#xff0c;即使配置了安全组规则来限制入站流量&#xff0c;攻击者仍可能找到绕过这些基本防护措施的方法&#xff0c;尤其是当攻击流量巨大时。这是因为安全组主要工作在网络层和传输层&#xff0c;它们依据IP地址、协议和端口号来过滤流量&#xff0c;对于应用…

AttributeError: module ‘numpy‘ has no attribute ‘bool‘

报错内容&#xff1a; AttributeError: module numpy has no attribute bool. np.bool was a deprecated alias for the builtin bool. To avoid this error in existing code, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically…

【Spring】设计模式(GOF)

Spring Framework在其架构和实现中广泛使用了多种GOF&#xff08;Gang of Four&#xff09;设计模式。这些设计模式帮助Spring解决了许多常见的软件开发问题&#xff0c;提高了代码的可重用性、可维护性和可扩展性。 1、工厂模式&#xff08;Factory Pattern&#xff09; 1.1简…

Android14 WMS-窗口添加流程(一)-Client端

窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载&#xff0c;但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后&#xff0c;也就是说应用onResume时此窗口是不可见的&#xff0c;真正可见是当此window窗口的mDrawState变化状态从NO_SUR…

Raven2掠夺者2渡鸦2游戏预约注册教程 账号注册教程

《渡鸦2》是一款源自韩国的创新力作&#xff0c;作为《Raven》系列的最新续篇&#xff0c;这款游戏在MMORPG手游领域内再度扩展了其标志性的暗黑奇幻宇宙&#xff0c;融入了大量革新的游戏设计与丰富内容。定档于2024年5月29日开启公测的《渡鸦2》&#xff0c;正处在紧张刺激的…

blender复制uv贴图

1、新建两个猴头 2、点击其中一个进入uv编辑模式 3、在uv编辑中打开一个图像 4、新建一个材质球&#xff0c;将图像渲染到模型上 打开图像纹理 选择刚才打开的图像 切换到材质预览模式后&#xff0c;就可以看到贴图了 5、选择一个孤岛 6、然后选择拼排孤岛 可以看到该模型展开…

【全开源】JAVA人力资源招聘社会校招类型招聘系统校园招聘PC端

塑造企业高效招聘新体验 一、源码简介 招聘PC端源码&#xff0c;一款面向企业的招聘管理系统解决方案。它拥有完整的招聘流程管理功能&#xff0c;从职位发布到候选人管理&#xff0c;再到面试安排与结果反馈&#xff0c;所有环节都通过直观易用的界面进行展现&#xff0c;大…

Java面向对象-常用类(BigInteger类和BigDecemal类)

常用类-BigInteger类和BigDecemal类 使用 BigDecimal 进行计算时&#xff0c;我们不能再使用算术运算符&#xff08;、-、*、/&#xff09;进行算数运算&#xff0c;而是使用 BigDecimal 类提供的 add、subtract、multiply、divide 等方法来进行算数运算。 BigInteger: 能表示比…

考研408笔记总结~

目录 一.数据结构 二.计算机组成原理 三.操作系统 四.计算机网络 私以为边看视频&#xff0c;边做笔记会更专注些&#xff0c;大家需要自取。欢迎大家和我一起探讨考研的问题&#xff0c;包括不仅限于专业课&#xff0c;数学&#xff0c;英语等等......&#xff0c;想说什么…

Vivado打开之前项目仿真过的波形文件

第一步&#xff1a;顶部菜单 点击&#xff1a;Open Static Simulation 然后在弹出的窗口找到.sim结尾的文件夹&#xff0c;在里面找到wdb结尾的文件&#xff0c;点击ok 第二步&#xff1a;依次点击下方红圈 找到wcfg结尾的文件&#xff0c;点击ok即可

React:Mobx的autorun 和 runInAction(异步)

autorun 用法 监听变量变化 componentDidUpdate() {autorun(() > {console.log(this.list); // 每次 this.list 发生改变&#xff0c;都会触发这里// 对 list进行后续操作this.listChangeHandle();}) }⚠️注意 上边的autorun&#xff0c;会一直保留&#xff0c;每次组件加…

第十三届蓝桥杯国赛大学B组填空题(c++)

A.2022 动态规划 AC; #include<iostream> #define int long long using namespace std; int dp[2050][15]; //dp[i][j]:把数字i分解为j个不同的数的方法数 signed main(){dp[0][0]1;for(int i1;i<2022;i){for(int j1;j<10;j){//一种是已经分成j个数,这时只需每一个…

坦克飞机大战项目详解:从包结构到测试发布

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、项目初始化与包结构构建 代码案例&#xff1a; 二、资源文件与配置文件管理 代码案例…

MySQL简单测试和安装

MySQL 的特点 1、MySQL 性能卓越、服务稳定&#xff0c;很少出现异常宕机。 2、MySQL开放源代码且无版权制约&#xff0c;自主性及使用成本低。 3、MySQL历史悠久(版本众多)&#xff0c;用户使用活跃&#xff0c;遇到问题可以寻求帮助。 4、MySQL体积小(相对大型关系型数据库)…

linux安装mysql后,配置mysql,并连接navicate软件

Xshell连接登陆服务器 输入全局命令 mysql -u root -p 回车后&#xff0c;输入密码&#xff0c;不显示输入的密码 注意mysql服务状态&#xff0c;是否运行等 修改配置文件my.cnf&#xff0c;这里没找到就找my.ini&#xff0c;指定有一个是对的 find / -name my.cnf 接下…

Redis常用作MySQL等数据库的缓存层,如何保证Redis缓存和数据库数据的一致性?

1、写操作时&#xff1a;先更新数据库&#xff0c;再清除缓存&#xff1b; 2、读操作&#xff1a;读取缓存&#xff0c;存在则直接返回&#xff0c;不存在则读取数据库&#xff0c;之后更新到缓存。 为什么是删除缓存&#xff0c;而不是更新缓存呢&#xff1f; 更新缓存会有并…

【MySQL精通之路】SQL优化(1)

主博客&#xff1a; https://anakki.blog.csdn.net/article/details/139102441 1.优化SELECT语句 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 2.优化子查询、派生表、视图引用和公用表表达式 3.优化INFORMATION_SCHEMA查询 4.优化Performance Schema查询 5.优化数据更改…

【Web】浏览器指纹:追踪用户的新技术

目录 什么是浏览器指纹&#xff1f;浏览器指纹的原理浏览器指纹的应用使用JavaScript获取浏览器指纹总结 在这个数字化时代&#xff0c;用户隐私和网络安全成为了人们日益关注的话题。而浏览器指纹作为一种追踪用户的新技术&#xff0c;正逐渐受到人们的关注。本文将详细介绍浏…

用BAT合并多个文件到一个文件中

加入有0001.txt,0002.txt,0003.txt三个文件&#xff0c;把这三个文件合并到all.txt文件的话&#xff0c; 把下面代码保存到“_mergeDelete.bat”中&#xff0c;双击运行即可。 &#xff08;应用场景&#xff1a;用VBA输出文件较大时&#xff0c;先进行拆分&#xff0c;最后把…

26计算机操作系统408考研--操作系统处理机调度篇章(五)

文章目录 一、调度简介死锁一、调度简介 计算机系统中,处理器和内存资源会出现供不应求的情况,特别是多个I/O设备与主机交互,作业不断进入系统,或者是多个批处理作业在磁盘的后备队列中等待进入内存的情况。操作系统在管理有限的资源的同时,需要考虑如何选取进入内存的作…