NeoVim:如何将当前文件(包括相对路径)复制到另一个项目文件夹中?

问题描述 投票:0回答:1

假设我有两个项目:

~/Dev/ProjectOne
~/Dev/ProjectTwo

我当前的目录是

~/Dev/ProjectOne
,在当前缓冲区中我已经打开:

./app/controllers/spree/admin/some_controller.rb

我想将此文件复制到

~/Dev/ProjectTwo
中的同一路径中:

~/Dev/ProjectTwo/app/controllers/spree/admin/

将当前文件复制到

~/Dev/ProjectTwo
同时自动扩展相对路径的最短、最惯用的方法是什么?

当然可以输入整个复制命令:

!cp ~/Dev/ProjectOne/app/controllers/spree/admin/some_controller.rb \
~/Dev/ProjectTwo/app/controllers/spree/admin

在使用 Vim 近三十年的时间里,我不敢相信我没有想到更好的方法!

任何想法都非常好!谢谢!

vim neovim
1个回答
0
投票

如果目标路径存在,那么你可以简单地执行以下操作:

:w[rite] %:s/ProjectOne/ProjectTwo/

或:

:sav[eas] %:s/ProjectOne/ProjectTwo/

哪里……

  • %
    是当前文件名,
  • :…
    :help filename-modifiers
    ,
  • :s/ProjectOne/ProjectTwo/
    将文件名中的
    ProjectOne
    替换为
    ProjectTwo

在实践中,您可能需要添加更多文件名修饰符(例如

:p
以确保您使用完整的绝对路径)。 YMMV.

请参阅

:help :w
:help :saveas
来决定使用哪一个。

© www.soinside.com 2019 - 2024. All rights reserved.