Vim: Backspace does not honor "editor.useTabStops" setting.

Created on 11 May 2017  路  9Comments  路  Source: VSCodeVim/Vim

  • 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):

BUG REPORT

Environment:

  • VSCode Version: 1.12.1
  • VsCodeVim Version: 0.7.1
  • OS: Linux Mint

What happened:

Wrong number of spaces deleted when pressing Backspace

What did you expect to happen:

When pressing backspace in insert mode I expected my editor.tabStop number of spaces to be deleted (in this case 4 spaces)

How to reproduce it:

When using "editor.useTabStops": "true" and using spaces for indentation:

  1. In insert mode, press Tab.
    [4] spaces are inserted
  2. Press Backspace.
    1 space is deleted.

When disabling Vim plugin, the editor behaves as expected.

kinbug

All 9 comments

I can't reproduce this on Arch Linux, VsCode 1.12.1, and VsCodeVim 0.7.1

I'm reproducing this exact issue on MacOS 10.12.6 VSCode 1.17.2 VSCodeVim 0.10.2.

Make sure your editor is set to indent using spaces (run > Indent Using Spaces).

This makes editing files that indent using spaces a pretty bad experience since you have to press backspace so many times to simply dedent.

I have a problem on Ubuntu 18.04, VSCode 1.23.1, VSCode Vim 0.12.0 that I believe belongs here... If not, please tell, I'll open new issue...

Anyway, un-indenting using backspace in insert mode works only on empty line. If line is not empty, backspace will move by single space. Best shown with some pictures...

disabled VSCode Vim:
disabled_vs_vim

enabled VSCode Vim, insert mode:
enabled_vs_vim

enabled VSCode Vim, empy line, insert mode:
enabled_vs_vim_spaces_only

I can confirm @tadams42 behaviour on VSC Version 1.24.0 (1.24.0), vim 0.12.0, Mac OSX 10.13.4

Hello, same issue here when editing files with space. There's another little demo (for C):

gif

And the only extension enabled is vscodevim.

System info:
Windows 10 64bit, vscodevim 0.16.12.

Version: 1.29.0 (user setup)
Commit: 5f24c93878bd4bc645a4a17c620e2487b11005f9
Date: 2018-11-12T07:47:15.448Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

Can confirm with vscodevim 1.0.0 on macOS 10.13. VSCode 1.30.1
The same exact problem as AlexGuo1998.

Same issue here on macOS 10.13.1, VSCode 1.30.2, Vim 1.0.2

Using the VSCodeVim plugin along with Backspace++ plugin seems to bring back the intended behavior (ie. delete full tab width on backspace instead of just one space). Temporary option for anybody else wanting that behavior.

OSX: 10.14.3
VSCode: 1.31.1
vscodevim: 1.0.8
backspace++: 0.0.17 (deprecated)

This can be fixed by remapping backspace to extension.vim_shift+backspace and removing the mapping of extension.vim_backspace. Pressing shift + backspace will respect tab stops.

Add the following entries to your keybindings.json:

[
  {
    "key": "backspace",
    "command": "extension.vim_shift+backspace",
    "when": "editorTextFocus && vim.active && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || editorTextFocus && vim.active && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "shift+backspace",
    "command": "-extension.vim_shift+backspace",
    "when": "editorTextFocus && vim.active && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || editorTextFocus && vim.active && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "backspace",
    "command": "-extension.vim_backspace",
    "when": "editorTextFocus && vim.active && !inDebugRepl"
  }
]
Was this page helpful?
0 / 5 - 0 ratings

Related issues

lucastheisen picture lucastheisen  路  3Comments

spinningarrow picture spinningarrow  路  3Comments

ghost picture ghost  路  3Comments

ACollectionOfAtoms picture ACollectionOfAtoms  路  3Comments

orn688 picture orn688  路  3Comments