hackmdio / hackmdio/hackmd-io-issues

block visual mode: literal tabs treated oddly

Aperta
#372 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Nessun dato sulla lingua
Stelle
40
Fork
9
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Is this a hackmd.io issue?

- [X] Yes, the bug happens on https://hackmd.io
- [ ] No. If it's a self-hosted CodiMD instance, please fire up the issue in the repo of CodiMD: https://github.com/hackmdio/codimd

### Read our Official tutorial

It's on https://hackmd.io/c/tutorials/

或是中文版 https://hackmd.io/c/tutorials-tw/

### What's the problem
When in `vim` mode, Visual Block mode (`ctrl+v`) incorrectly manipulates tab characters as if they are of width one, rather than the width visually exposed.

#### Current behaviour

> Screenshot (optional)
![image](https://github.com/hackmdio/hackmd-io-issues/assets/1756464/2119a109-de3f-4f74-9f91-015500c93d64)

Provide steps to reproduce:

1. Create a document, such as a table, consisting of both tabs and spaces
```markdown
|
\t|
```
2. set to use Vim mode and enter command mode (`esc`)
3. `gg` to go to the top
4. `ctrl+v` to enter visual block mode
5. `G` to go to the bottom row
6. `A` to append. Notice that rather than a clean block selection, a jagged edge is selected.

[example note](https://hackmd.io/wfKBo0kRRUSkZZqIwF-N4w)

#### Expected behaviour

Tabs should be treated with their rendered width, not width one.

#### Environment

I use HackMD on:

**Desktop**
- OS: macOS and Windows
- Browser: Firefox
- Browser Version: 125

**Mobile**
n/a

#### Additional context

n/a

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

L’issue non indica file né test. Inizia riproducendo la selezione Visual Block di Vim-mode con l’esempio fornito contenente tabs e spazi misti, quindi traccia il punto di ingresso della selezione e verifica che i tabs usino la loro larghezza renderizzata invece di una larghezza pari a uno. Il lavoro è completato quando il bordo del blocco è pulito e corrisponde alle colonne visive previste.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
vim
Ambito
frontend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.