diff --git a/HELP.md b/HELP.md index 743743d0..5f0eec65 100644 --- a/HELP.md +++ b/HELP.md @@ -223,6 +223,7 @@ When the `--vim` option is provided, or the configuration parameter `vim` is set | `md` | make directory | `mf` | make file | `tt` | show terminal +| `e` | edit file Commands can be joined, for example: diff --git a/client/key/vim/index.js b/client/key/vim/index.js index 71a48800..290983d7 100644 --- a/client/key/vim/index.js +++ b/client/key/vim/index.js @@ -37,6 +37,10 @@ const getOperations = (event) => ({ CloudCmd.Terminal.show(); }, + edit: () => { + CloudCmd.EditFileVim.show(); + }, + copy: () => { DOM.Buffer.copy(); DOM.unselectFiles(); diff --git a/client/key/vim/index.spec.js b/client/key/vim/index.spec.js index da48cb8f..3d26e6c8 100644 --- a/client/key/vim/index.spec.js +++ b/client/key/vim/index.spec.js @@ -525,3 +525,18 @@ test('cloudcmd: client: vim: terminal', (t) => { t.end(); }); +test('cloudcmd: client: vim: edit', (t) => { + assign(CloudCmd, { + EditFileVim: { + show: stub(), + }, + }); + + const event = { + }; + vim('e', event); + + t.calledWithNoArgs(CloudCmd.EditFileVim.show); + t.end(); +}); + diff --git a/client/key/vim/vim.js b/client/key/vim/vim.js index f49fd614..89208a90 100644 --- a/client/key/vim/vim.js +++ b/client/key/vim/vim.js @@ -39,6 +39,7 @@ module.exports = (key, operations) => { makeFile = noop, makeDirectory = noop, terminal = noop, + edit = noop, } = operations; if (key === 'Enter') @@ -108,6 +109,11 @@ module.exports = (key, operations) => { return end(); } + if (value === 'e') { + edit(); + return end(); + } + if (value === 'mf') { makeFile(); return end();