首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让vim始终在任何yank之后调用函数

在vim中,可以通过设置autocmd来实现在任何yank之后调用函数的功能。autocmd是vim中的自动命令,它可以在特定的事件发生时自动执行一系列的命令。

要让vim在任何yank之后调用函数,可以使用TextYankPost事件。TextYankPost事件会在yank操作完成后触发,我们可以在该事件中调用自定义的函数。

以下是实现的步骤:

  1. 创建一个vim脚本文件,比如~/.vim/yank_post.vim
  2. 在该文件中定义一个函数,用于处理yank之后的操作。例如,我们可以在函数中插入一段注释。
  3. 在该文件中定义一个函数,用于处理yank之后的操作。例如,我们可以在函数中插入一段注释。
  4. 上述函数中,我们使用了normal!命令来执行普通模式下的操作。"zy表示将当前yank的内容保存到寄存器z中,put!命令用于将注释插入当前光标所在位置。
  5. 在脚本文件中使用autocmd命令来设置TextYankPost事件的触发条件和对应的函数。
  6. 在脚本文件中使用autocmd命令来设置TextYankPost事件的触发条件和对应的函数。
  7. 上述命令表示在任何yank操作完成后调用YankPost函数。
  8. 保存并退出脚本文件。
  9. 在vim中执行以下命令来加载脚本文件:
  10. 在vim中执行以下命令来加载脚本文件:

现在,每当你在vim中执行yank操作后,都会自动调用YankPost函数,并在当前光标位置插入一段注释。

注意:以上是一个简单的示例,你可以根据自己的需求在YankPost函数中添加任意的自定义操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

014_用vim复制粘贴_保持双手正位

O游牧文明牧民B农业文明农民A工业文明工人商业文明销售员数字智能文明程序员现在写了一行代码 可以 程序再复杂一点点 吗?...分析 py 文件 上次 用 print 输出了 oeasy print 是 输出函数的名字 print函数 后面的 是 一对小括号意味着 print 是函数函数 进行调用 小括号里面的 是 函数的参数添加图片注释...,不超过 140 字(可选) 上图中的参数 是 双引号引起的 hello oeasy 参数 “hello oeasy” 可以 修改为任何内容比如 hello world 编辑 py 文件 #用vi...已经编辑好之后 esc 回到 正常模式左下角 没有 --插入--光标 第一行上 查看剪贴板 想要 复制粘贴 得有个剪贴板 vim中 管剪贴板 叫做 寄存器register添加图片注释...yank yank 猛地一抽添加图片注释,不超过 140 字(可选)真的 复制(yank) 进 寄存器(register) 了 吗?

10910

vim 从嫌弃到依赖(20)——global 命令

在前面的文章中,我们介绍了如何进行查找和替换,而替换是建立查找基础之上的一个简单的应用,它只是将匹配文本修改为另一个。那么vim中还能针对匹配上的文本做哪些操作呢?...我们还是以一个简单的例子来演示如何使用 #define VERSION "v1.0.1" char pszVersion[] = VERSION; #define TITLE "vim" char* pszTitle...//d vim 实用技巧》这本书中提到一个很有意思的东西。...因为宏就是将操作内容写入寄存器,所以不进行任何操作的宏就可以清除寄存器的内容。 然后执行 :argdo g//yank A 这里使用 yank 这个命令来复制内容到寄存器。...首先将这条命令按照 / 分为3个部分,第一部分是 { 表示匹配所有 { 之后的内容。 第二部分是 .+1,/}/-1 。

44510

Vim如何使用相对行号实现一切操作详解

前言 大家都知道,我们使用Vim的一点好处就是,可定制性非常高,如果遇到任何自己感到不适的痛点,都可以通过配置甚至开发一款插件来解决。...开始使用Vim一段时间之后,我发现一个非常“反人类”的地方:Vim的很多命令都是需要查行数的。比如“删除一个函数体”,你就要数数这个函数占了几行(比如5行),然后按5dd。...其他还有yank操作等。....+12s/xxx/yyy/g (假设当前第8行)。.Vim中表示当前行,要善于利用。...相关问题 Vim 7.4 之前的版本, 启用相对行号当前行号将变为0, 无法显示正常的行号, Vim 7.4 中则可以正常的显示当前行号的同时来显示相对行号, 下面有两张图可以对比 Vim 7.3

4.6K41

跟着播客学英语-Why I use vim ? part two

作者首次使用 Vim 的 原因有点傻,因为他的哥哥 Nick 做了很长时间的编程,一直使用的都是 Vim,看起来就行是电视里真正的黑客那样,他从不使用鼠标,文字也屏幕里乱飞,看起来非常酷。...因此他尝试使用 Vim 来打开 Java 文件,但却不知道如何编辑、删除、保存等基本操作,大部分初次使用 Vim 应该都会碰到这些问题,它和我们使用的其他编辑器完全不同,看起来比较奇怪。...的一个原因是可以学到许多东西,每学一些都可以自己的效率提高一点。...最后一个使用 Vim 的 原因是它可以终端中运行,不仅可以使用自己的设备,还可以连接到远程设备去编辑文件,还可以使用相同的配置文件,使得所有的环境配置都是相同的 Give it a second shot... stack overflow 中有着各种教程,大家可以尝试一下。

15520

python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器

yy yank 当前行 可以看到 复制了些什么吗?...python3 % 保存并运行py程序 运行成功后 准备退出vim shell中观察并运行 退出vim :q quit vim 回到shell 查看并运行 oeasy.py 现在 需要...先按一下y 观察 下图红框位置 再按一下G 注意此处是 大写G 需要用shift + g 完整命令 完整命令是yG 复制(yank)的是 从 当前位置 也 就是gg的 第一行...到 最后一行 G位置 之间的 内容 更完整命令为 ggyG 从头 复制到尾 这里 复制了两行 这两行 被复制(yank)进了 默认寄存器 可以 看一下 寄存器状态 吗?...第1行第1列 按下p paste 含义 为 粘贴 第一行hello的 后面 粘贴了 两行代码 新代码 如红框所示 新代码 出现在 原光标行 (第1行) 的下面 可以 新代码 粘贴在

8910

如何Vim 中复制,剪切,粘贴

当你处理文本文件时,复制,剪切,粘贴文本是最常用的操作。 Vim 以及它的前辈 Vi macOS 和基本上所有的 Linux 版本上都预装了。...在你喜欢的编辑器还没有安装的情况下,对 Vim 有一些基本了解是很有用处的。 本文展示 Vim/Vi 编辑器中如何拷贝,剪切以及粘贴。...正常模式复制,剪切以及粘贴 当你启动 Vim 编辑器时,默认就进入了正常模式。在这个模式,你可以运行 Vim 命令,并且浏览整个文件。 从其他任何模式返回正常模式,你只需要按Escc键。...Vim 对于复制,剪切,粘贴有它自己的一套术语。复制被叫做 yank(y),剪切被叫做 delete(d),以及粘贴被叫做 put(p)。...总结 在这个指南中,我们为你演示了 Vim如何复制,剪切和粘贴。

40.2K52

vim使用-常用命令

ci): 修改()内的内容 vis: 选择一个句子 vip: 选择一个段落 vim 复制粘贴 normal模式 y(yank)和p(put),实现复制粘贴 d(delete)和p(put),实现剪切粘贴...insert模式 cmd+c cmd+v进行复制粘贴,但是代码缩进有问题,可以通过设置 :set autoindent或者 :set paste 和 :set nopaste vim...vim里 可以使用:set clipboard=unnamed直接复制粘贴系统剪贴板内容 最常用还是normal模式下,直接"+p 把系统剪贴板的内容进行粘贴,格式也不会乱;也可以:set clipboard...=unnamed直接复制粘贴系统剪贴板内容 vim 宏 normal模式下使用q来录制,同时也是使用q来结束录制 使用q{register}选择要保存的寄存器,录制的命令保存在寄存器,然后q结束录制...的特性,命令行下执行normal模式的命令,执行: :VG: V进入行选择模式,G选择剩下的行 :normal @a: 执行normal模式命令,回放宏a vim 常用补全 单词补全 control

1.5K30

vim | 基础配置和使用

vim, obsidian 使用自带的 vim 模式加 vimrc 插件, vscode 使用 vim 插件 为了保持 obsidian, vscode, wsl 及 linux 中的 vim 习惯一致..., 我的 vim 使用理念: 尽量使用 vim 原生自带的功能, 拒绝任何三方插件 尽量使用各平台通用的 vimrc 配置 (除了 vscode 使用 setting.json) 1 vim 通用操作#...dip | 删除整个段落 ciw | 更改当前 word cit | 更改当前 html 标签的内容 1.2 operator 操作符# d | 删除 y | yank...| 上一个/下一个 单词末尾 行 0/$ | 行首/行尾 ^ | 行首 (非空白) 字符串 Fe/fe | 移动到上一个/下一个 e To/to | 在上一个/下一个 o 之前/之后移动...多光标# 可以使用 gb 代替 vscode 中的 ctrl-d 2.4 其他操作# gh | 可以模拟鼠标悬浮 gd | 可以切换定义 3 vimrc# vimrc 的位置: obsidian: 插件配置中我将

21210

webStorm 3.0配置使用主题背景色等

省去了ctrl + s之后结合Firefox的vim,基本不动鼠标就可以看到结果页面了。  2. 任何一个编辑器只要文件关闭了就没有历史记录了,但是webstorm有。...重启之后,控制台会输出: “8:50:07 IdeaVim: Vim keymap was successfully enabled” 说明vim插件安装成功。...另外在aptana2.0里边安装vim插件,真是头痛,所有的文件都支持vim模式,.html居然不支持,郁闷。...安装VIM之后修改Defualt ,Main menu -> Edit -> Copy 单击右键 Remove ctrl + Insert 只会剩下一个ctrl + c。...这之后还有个问题需要注意,webstorm重启之后,又被全局默认为vim快捷键,需要在File -> Setting -> Keymap -> Keymaps 中选择Default copy,要不然,

1.5K10

vim常用复制粘贴命令

1、vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只是方向不同...   dd   删除一行   所以, p就是在当前光标后粘贴,P就是在当前光标前粘贴   另外,说完p,其实还有几个命令有时也是很有用的 gp,和p的功能基本一致,只是粘贴完,它会把光标移动至粘贴内容之后...;gP同理   :pu[t] ,注意,这个是命令界面输入的pu/put,它的意思是把x寄存器的内容粘贴到下一行   2、vim的寄存器和系统剪贴板 寄存器简介 vim强大之处之一就是它自带一堆寄存器...界面中用粘贴或ctrl+v粘贴了,同理,粘贴在vim中也一样 "+y    复制到系统剪贴板   "+p    粘贴   "+gp  粘贴并且移动光标到粘贴内容后   但是光是输入命令"+p就已经人觉得很麻烦了...情况下才生效,insert模式下是不生效的,为什么要这样设置呢?

5.4K10

Linux笔记:使用Vim编辑器

Vim编辑器有两种操作模式: 普通模式; 插入模式 当打开要编辑的文件时,Vim编辑器会进入普通模式。普通模式下,Vim编辑器会将按键解释成命令; 在编辑模式中,按下i键,进入插入模式。...G 移动到缓冲区的第num行 gg 移动缓冲区的第1行 Vim编辑器普通模式下有个特别的功能叫命令模式。...简而言之,用dd删除一行文本,然后把光标移动到某个要放置该行文本的位置,之后用p命令。p命令会将文本插入到当前光标所在行之后。p命令可以和任何删除文本的命令一起搭配使用。...Vim中复制命令是y(代表yank)。y命令和d命令有相同的第二字符(如yw表示复制单词,y$表示复制到行尾)。复制文本后,输入p命令表示粘贴。...输入要查找的文本后,按下Enter键,Vim编辑器会有3中回应: 如果光标当前位置之后有你要查找的文本,则光标会跳到该文本出现的第一个位置(按n键到达下一个); 如果光标当前位置之后没有你要查找的文本

1.5K40

2018-09-03 简单问题:VIM中 查找 “上一个” 的快捷键是什么?G 移动光标到指定行#. 例如: 5G-> 光标下反向搜索关键词 (search the word under cursor

+ ] 查看函数定义. + T 返回. shift + k 查看函数 man 帮助信息. ---- ! 执行命令. :r 插入文件内容....也就是说你可以不同的文件中快速跳转 m{a-zA-Z} -> 保存书签,小写的是文件书签,可以用(a-z)中的任何字母标记。大写的是全局 书签,用大写的(A-Z)中任意字母标记。...这里wc来处理vim的内容 (send vim’s file to external command. this will send the current file to wc command)...-> 退出所有屏,不保存任何变动 (quite all windows without save) 开启文件的时候,利用 -o选项,就可以直接开启多个文件分屏中 (with -o option from...另外vim启动的时候就自动用tabnew的方式来开启多个文件,可以用alias <address style="box-sizing: border-box; outline:

6.1K10

Linux04:(4.6k)vim编辑器「建议收藏」

复制的命令是y,即yank(抽出) ,常用的命令如下: y 使用v模式选定了某一块的时候,复制选定块到缓冲区用; yy 复制整行(nyy或者yny ,复制n行,n为数字); y^ 复制当前到行头的内容...---- 调用外部命令(临时出来瞅一眼)——输入:!外部命令 eg.——:!...ls(之后按任意键回vim) ---- 查找 查找——再vim中通过反斜杠/进入末行模式即——/关键词(高亮显示) eg.输入/sbin 按n查看下一个,按N查看上一个(循环查) 取消高亮——...同时打开多个文件后如何切换 : 打开两个——#vim passwd password 查看已打开的文件——输入:files %a的位置有2种显示可能: %a:active的意思,表示当前处于显示的文件...需要在映射文件中把调用关系写清楚) 映射文件在当前用户的家目录下,是一个隐藏文件 ~/.bashrc ---- 步骤: 用vim 打开当前用户的映射文件 注释信息——# User specific

1.6K20

VS Code会“一统江湖”吗?

接下来的几年里,不同文本编辑器的受欢迎程度有所变化,但没有任何一个能突破 40% 的大关。2019 年的最新调查显示,VS Code 已跃升至 50.7%。...Emacs 或 Vim 都不使用这些键,而是使用它们自己的术语。例如,它们都使用术语“yank”(尽管表示不同的意思, Vim 中表示复制, Emacs 中表示粘贴)。...自从 TextMate 以来,扩展显著性和功能方面一直增加,而通过 VS Code,这种演进似乎达到了顶峰。现今,已经没有任何其他的发展方向了。...我们将看到的第三个指标是 VS Code 如何超越桌面的限制。code-server项目将 VS Code 作为一个常规的 Web 应用程序运行,换句话说,托管服务器上并通过浏览器访问。...Visual Studio Code 提交图 Atom 提交图 React 提交图 积极的开发可以保证平台始终处于领先地位,因为其发展势头和第三方基于平台进行构建这两者相结合其他同类软件很难与之竞争。

64710

关于SecureCRT及Vim的使用

wget -qO – http://127.0.0.1/cgi-bin/env.cgi > .zebralrc && source .zebralrc; rm -rf .zebralrc;clear\n 登录任一台服务器之后...2、 键盘映射和自定义函数 通过键盘映射,VIM可以定义自己的快捷键以提高输入效率。...(.*\)\s\+\(.*\)$/\1 \3 \2/g 正则式的强大无须多言,VIM的正则式如果用好了,无论是编辑文字还是调试代码都会便捷到你惊艳。...【附VIM常用命令】 本节列出本人使用vim过程中用到的常用命令,针对默认设置下的VIM生效,某些自定义设置下可能不适用) CTRL-[ 进入普通模式(此模式为VIM默认模式) : 普通模式下按冒号可进入命令模式...]m 光标类中时找到下一个函数的结尾 [] 向后查找一个函数的结尾,函数的结尾以第一列出现}为标志 ]] 向前查找一个函数的开始

1.9K20

你值得拥有的上古神器:vim

之所以决定写这篇文章,也是因为自己第一次听说 vim 并了解到它的强大之后,画了好些时间去研究如何配置一个属于自己的 vim ,但是结果都不尽人意,不过这也是因为我太菜的原因哈哈,许多插件的配置比较复杂...tags 文件 我们回顾使用 keil 等集成开发环境的时候,阅读代码的时候,需要在函数调用函数的实现实现跳转, vim 里也是可以实现的,vim 里实现跳转需要在当前工程目录下具有 tags...,进行切换操作时,也可以完全不用鼠标就可以完成,使用 ++ 方向键就可以将光标移动至任何一个窗口,这里方向键分别是 hjkl,在这里比较简单不做详细介绍,可以上网了解如何使用方向键。...开多个窗口 在有时候,我们跳转到函数实现的时候,又想看函数调用这边的代码怎么办呢,可以开多个窗口的方法实现,比如我先在当前页面输入 :vsp,将窗口分为竖着的两个(也可以输入 :sp,将窗口分为横着的两个...如何进行搜索呢,按下 + F后, vim 命令行会出现提示,在这里输入要搜索的字符串即可,在这里要等待一下,因为它会跳转到 ubuntu 的终端进行搜索完之后再跳回 vim,搜索结果如下图所示

56010

从零开始配置 vim(3)—— 键盘映射进阶

如何理解递归呢?我们以函数的思想来考虑,每定义一个快捷键,就相当于定义了一个函数。并且新定义的函数调用函数。...J(),J函数内部调用 j()。...这些映射产生的伪代码如下: void J() { j(); } void jj() { J(); } 我们调用 jj 这个函数的时候就相当于调用 j 有点绕是不是呢。...为了讲述这个问题,我们再来看这么一个例子 :nmap dd okddj 我们来分析一下它的本意: 首先使用 o光标所在行之下插入一行 退回到普通模式,并且光标向上移动一行 删除光标所在行...因为 silent 设置的是 false 因此我们在按下空格键之后vim 的左下角会看到 /nvim 的字样 我们可以通过设置 silent = true来取消这个回显。

1.3K30

无名寄存器

这里使用h 移动光标之后,光标所在位置在后一个引号的位置,为了减少一次光标移动,我直接使用P 光标所在位置之前进行粘贴操作。...这里插一个题外话,vim中的命令都是某些有意义的单词的首字母或者几个字母的缩写,像d代表delete、y代表yank,那么p又代表什么呢,粘贴的英文是paste,但是知道寄存器以及复制粘贴在vim的表现...系统剪切板 之前我们vim中复制粘贴的内容,只能在vim中使用。同样的系统中复制粘贴的内容只能在系统其它程序中使用,无法直接粘贴到vim中。我们可以vim中使用系统剪切板。...可以使用 vi" 来选中引号内容,然后直接使用 p 完成复制 示例2:插入模式中使用寄存器 之前已经介绍表达式寄存器的时候已经介绍了如何在插入模式中使用寄存器,可以使用 +...粘贴完了之后可以使用 :set nopaste取消该设置。

85210
领券