Vim复制和粘贴行并进行搜索和替换

物理迈克尔

假设我已经编写了引用x维的代码。使vim复制一行代码以替换所有对x到y和z的引用的最佳方法是什么(最好是最清晰的方法)。

输入:

length_x = X_vec.dot(X_vec)**.5

所需的输出:

length_x = X_vec.dot(X_vec)**.5
length_y = Y_vec.dot(Y_vec)**.5
length_z = Z_vec.dot(Z_vec)**.5

到目前为止,这是我最好的。

function SwitchXtoYZ()
  :normal yy
  :normal p
  :normal! V
  :s/X/Y/ge
  :normal! V
  :s/x/y/ge
  :normal p
  :normal! V
  :s/X/Z/ge
  :normal! V
  :s/x/z/ge
endfunction

command XtoYZ exec SwitchXtoYZ() | :normal `.

它可以工作,但是我感觉这不是很流行。如果光标返回到发出XtoYZ命令之前的位置(当前行至第二个插入行的开头),则奖励点。

肯特郡

您不需要执行此操作的函数,宏就可以满足您的要求。您也可以根据需要在vimrc中定义一个宏,以便每次打开vim时都可以使用它。

这是宏:

qqv<Esc>Y2p:s/x/y/gi<Enter>n:s//z/gi<Enter>`<q

因此已将其记录并保存在register中q,您可以@q重播它。

解释一下:

qq               " start recording into q
v<esc>           " enter visual mode and exit. to let `< work
Y2p              " yank current line and paste twice below
:s/x/y/gi<Enter> " x->y sub, case insensitive
n                " go to next x (here we could use j too)
:s//z/gi<Enter>  " do another sub x->z
`<               " back to the old cursor position
q                " end recording

如果要X->Yx->y,只需删除该i标志并再添加两个:s

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

复制和粘贴 Vim 效果

来自分类Dev

VIM搜索和替换

来自分类Dev

循环进行复制和粘贴

来自分类Dev

如何复制PDF并进行一些文本替换和修改

来自分类Dev

Vim根据周围的文本进行搜索和替换

来自分类Dev

如何使用Vim进行块搜索和替换?

来自分类Dev

vim regex搜索和替换

来自分类Dev

VIM:脚本搜索和替换?

来自分类Dev

如何在vim中搜索值,然后使用该值在同一行中进行搜索和替换?

来自分类Dev

绑定鼠标按钮进行复制和粘贴

来自分类Dev

Mac和Vim的自动复制和粘贴实用程序

来自分类Dev

循环和复制/粘贴行 VBA

来自分类Dev

在主机和主机之间无法进行virtualbox的复制和粘贴

来自分类Dev

需要帮助制定Vim搜索和替换

来自分类Dev

Vim可视模式搜索和替换

来自分类Dev

Vim搜索和替换:更改字符的位置

来自分类Dev

禁用复制和粘贴

来自分类Dev

vim:复制和粘贴文本而无需查看行号

来自分类Dev

从 vim 文件中复制和粘贴选定的文本

来自分类Dev

使用vi复制副本注释行复制和粘贴

来自分类Dev

Vim-通过正则表达式搜索和替换进行增量编号

来自分类Dev

在Linux上进行SED搜索和替换

来自分类Dev

将矩阵转换为单行表示以进行复制和粘贴

来自分类Dev

对多行重复VBA子以进行复制和“粘贴值”

来自分类Dev

Vim:Ag在全局和目录内搜索和替换

来自分类Dev

如何在远程vps'vim和本地vim之间复制和粘贴数据?

来自分类Dev

VIM搜索和替换:在替换之前更改字符串

来自分类Dev

有条件地搜索和替换在vim中的一行吗?

来自分类Dev

将数据复制并粘贴到特定的行和列中