5

Bracketed Paste Mode in Terminal

 3 years ago
source link: https://jdhao.github.io/2021/02/01/bracketed_paste_mode/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Bracketed Paste Mode in Terminal

2021-02-01286 words 2 mins read 101 times read

A note on bracketed paste mode in terminal and Neovim.

I use ZOC terminal to connect to my remote server. Today, I noticed a strange issue when I copied text from elsewhere to the terminal shell command line. When I copied some text and pasted it in the terminal, I found that 0~ was added in the beginning of text, and 1~ was added in the end of text.

I found a similar issue on stackexchange. It turns out that this has something to do with bracketed paste mode in terminal emulators. Without this mode, our terminal can not discern the difference between pasting text and typing text manually. But how is this even important? A noticeable example is when we paste multi-line code into Vim. Since the code have already been properly indented, we do not want Vim to alter it. Without this terminal ability, Vim does not know whether you are typing the text or paste it from the terminal. So when it meets a newline character, it will try to re-indent the following line, causing a complete mess when pasting code into a Vim buffer.

If the terminal supports bracketed paste mode, to enable it, use the following command:

printf '\e[?2004h'

To disable this mode, use printf '\e[?2004l'.

For plain Vim, see this post on how to enable bracketed paste mode. If you are using Neovim, bracketed paste mode in builtin, if your terminal supports it, you do not need to do any setup. Neovim will just work, see also :h bracketed-paste-mode inside Neovim.

Author jdhao

LastMod 2021-02-02

License CC BY-NC-ND 4.0

Reward
How to Get or Set Clipboard Text in Python

Tmux Cheatsheet


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK