开发者

How do I paste non-ASCII characters into vim?

My terminal emulator is configured for Unicode character encoding and my .vimrc contai开发者_高级运维ns the line

set encoding=utf-8

but when I try pasting the word "café" into vim, it comes out as "café".

I can make an "é" in vim by typing Ctrl-vu followed by the 4-character code point (00e9) but I'd like the ability to paste it in.


The solution was to uncheck the "Escape non-ASCII input" checkbox in the Advanced tab of the Terminal.app settings.


Instead of copying the character from the clipboard and pasting it into the text editor, you can add it to the file using vim's digraph feature.

So, with default settings, using your example, you could enter insert mode, then hit Control-k, and type e'. The result will be é.

You can see the list of defined digraphs by running

:digraphs

and general help by running

:help digraph

which also explains how to customize your mappings.

If you are truly set on pasting the characters in, Shift-Insert has always worked for me.


How to type a non ASCII code into vi

You'll have to know what your encoding is to enter the proper codes, I assume you left VI at the default.

In VI, go into insert mode, while in insert mode, press

Ctrl-v 172

That should insert the Logical Not (sideways and inverted L) character defined here:

http://www.htmlhelp.com/reference/charset/iso160-191.html


  1. From where are you trying to paste it? If it is opera, then since opera-10.5* paste is broken in both directions. Before pasting anything you need to use xclip -o|xclip -i workaround (add -sel clip for clipboard).
  2. What command do you use?
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜