加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Vim功能返回当前行

发布时间:2020-12-16 01:46:59 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个Vim函数,它将执行一系列操作,然后返回到首次触发函数的行.有可能以某种方式编写一个可以执行此行为的Vim函数吗? 例如,如果我在vim缓冲区中某处 – 比如第55行并输入gg转到第一行,我可以使用 C-o返回第55行.如何在Vim函数中编写此行为?在
我正在尝试编写一个Vim函数,它将执行一系列操作,然后返回到首次触发函数的行.有可能以某种方式编写一个可以执行此行为的Vim函数吗?

例如,如果我在vim缓冲区中某处 – 比如第55行并输入gg转到第一行,我可以使用< C-o>返回第55行.如何在Vim函数中编写此行为?在此先感谢您的帮助.

解决方法

首先,您可以在通常键入的函数中执行所有操作.要使用< C-o>,您只需要正确的转义:

:execute "normal! &;C-o>"

除此之外,您还可以使用专用的Vimscript功能.最简单的是cursor(),它不修改跳转列表(使用line(‘.’)将原始位置保存在变量中;我在这里硬编码):

:call cursor(55,0)

如果您希望您的操作完全不可见,那么仅恢复光标位置是不够的.这些举动也可能影响了视口;即在窗口中显示哪些缓冲线.为了保持完整,请使用:

:let save_view = winsaveview()
" Your actions here
:call winrestview(save_view)
" Now the window looks exactly as before.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读