VSCodeVim / VSCodeVim/Vim

Ex commands don't accept a `[register]` parameter (neovim enabled)

Open
#2,078 1 comment 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/neovim
Dominant language
TypeScript
Stars
15.2k
Forks
1.5k
Avg merge
3d 18h
Merged PRs (30d)
6

Description

  • Click thumbs-up 👍 on this issue if you want it!
  • Click confused 😕 on this issue if not having it makes VSCodeVim unusable.

The VSCodeVim team prioritizes issues based on reaction count.


Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST

Environment:

  • VSCode Version: 1.17.1
  • VsCodeVim Version: 0.10.1
  • OS: 10.12.6

What happened:

I have neo-vim integration enabled in my settings. Ex commands like copy, move, and delete work fine, and I can yank into the default register like this no problem:

:40,50y

However, when I specify a register in which to yank, register x, nothing happens:

:40,50y x

:reg
//register x is still empty

The following Vim Ex commands all accept a register parameter:

:[range]delete [x]
:[range]yank [x]
:[line]put [x]

Here is some more info from the official vim docs:

*:y* *:yank* *E850*
:[range]y[ank] [x]	Yank [range] lines [into register x]. Yanking to the
			"* or "+ registers is possible only when the
			|+clipboard| feature is included.

Is this possible in VSCodeVim?

What did you expect to happen:

I expected to see x set in my list of registers (:reg), and expected to paste the contents of that register somewhere: "xp

How to reproduce it:

Try to yank the current line into a register: :y x

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No implementation files or tests are named. Start by tracing the Ex command handling for delete, yank, and put, then reproduce :y x; done means the specified register appears in :reg and can be pasted with "xp.

Written by the indexing model from the issue text.

Assessment

Tech stack
neovim, typescript
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.