Comments (11)
How about :Duplicate
?
from vim-eunuch.
Native :saveas
should do the feature.
from vim-eunuch.
Native
:saveas
should do the feature.
Not exactly. Comparing to other eunuch commands, :CopyAs
would work like :Rename
, i.e., relative to the current file's containing directory, and different from :Move
, that's relative to the current working directory.
To illustrate it:
Imagine your working directory, as in :pwd
, is /project
, but you're editing /project/src/somefile.ext
. Then you want to create a copy of this file and name it anotherfile.ext
.
- With
:saveas anotherfile.ext
, the new file would be created at/project
. To keep the copy in the same directory of the original file, you'd have to use:saveas %:p:h/anotherfile.ext
. - With the proposed
CopyAs
, typing:CopyAs anotherfile.ext
would create the newanotherfile.ext
at/project/src
, alongside the originalsomefile.ext
.
from vim-eunuch.
You're right @rawaludin, it's easy to use a native command in this case – actually, I'm already doing that. But the request matches the purpose of this plugin, that's to provide "Vim sugar for the UNIX shell commands".
So it seems to make sense having a command like the suggested :CopyAs
(or :SaveAs
). It is simply some sugar over the built-in :saveas
and that's the thing of vim-eunuch.
from vim-eunuch.
from vim-eunuch.
I'm having trouble getting past the name. How do you get from ":saveas
relative to the current file's directory" to :CopyAs
?
from vim-eunuch.
I endorsed the feature request but, personally, I prefer :SaveAs
.
from vim-eunuch.
That's less random, but still raises the same question.
Why provide :SaveAs
and not also :Edit
, Read
, :Write
, :WQ
, :File
, :VSplit
, etc?
from vim-eunuch.
I was looking at the perspective that the suggested :CopyAs
/:SaveAs
would be a good companion to the already provided commands :Rename
and :Move
, and just that. But now I see that :Rename
and :Move
can't be achieved with a single native command, whereas :CopyAs
/:SaveAs
can.
So I understand your point of view, and now I see the implications this addition could trigger.
from vim-eunuch.
To sum up the arguments for providing :Rename
as an alias :Move %:h/
:
- It's an extremely common operation.
- It's a variation of something Eunuch has already taken responsibility for.
- There's a single, obvious, easily remembered name for it.
Compare to :SaveAs
:
- It's common mainly as a poor man's template system. That is, it's useful in a pinch, but if you're doing it a million times a day, there's probably a better solution.
- It's a variation of a built-in.
- I can't think of a good name.
So yeah, it'd be a questionable addition with a good name. I don't think I'll be adding it with a bad name.
from vim-eunuch.
That's definitely a better name!
from vim-eunuch.
Related Issues (20)
- To move undo history with Move command HOT 1
- :Rename does not escape characters in the directory path HOT 1
- Feature: specify find command HOT 3
- Why does Unlink Remove files? HOT 1
- Add support for doas(1) in addition to sudo(1) HOT 2
- feature request: alias rm/unlink for Trash
- CR mapping doesn't handle `<expr>` neovim-lua-callback keybindings. HOT 3
- Support request - use current file when renaming HOT 1
- Why does `:Wall a` call a system broadcast app? HOT 1
- Blocked <cr> HOT 1
- Rename takes path relative to shell directory instead of current file directory HOT 3
- Feature request: "Duplicate"? Same as ":saveas", but saves to the same directory HOT 2
- SudoWrite should call redraw! before call to sudo HOT 1
- Commit 3e2582caa causes error 'E118: Too many arguments for function: s:MkdirCallable' HOT 1
- Asynchronous support for :Clocate HOT 4
- :Unlink with 'confirm'
- EunuchNewLine being printed to the neovim terminal in some configurations HOT 3
- EunuchNewLine("\r") being printed on every new line HOT 5
- Disabling auto-shebang on enter HOT 2
- Documentation for hooking into passive behaviors is outdated HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vim-eunuch.