Как вырезать и вставлять строки с вкладками с включенным автоматическим отступом в vi

999
Classified

Не уверен, к какой группе обмена стека подойдет этот вопрос, поэтому, если это не тот вопрос, перейдите к правильной.

Что происходит, если я выделю что-то с помощью вкладок / отступов из одного окна / браузера и захочу вставить это в vi, форматирование испортится.

Например, у меня есть следующее в другом окне, которое я хочу скопировать:

 "date_created" : "2013-06-06 21:12:31", "netdriver_duplex" : "Full", "mac_address" : "FA:16:3E:17:CC:E1", "interfaces" : "eth0,sit0", "processors" : null 

После того, как я выделю его и вставлю в vi, я получу следующее:

 "date_created" : "2013-06-06 21:12:31", "netdriver_duplex" : "Full", "mac_address" : "FA:16:3E:17:CC:E1", "interfaces" : "eth0,sit0", "processors" : null 

Кто-то сказал мне, что авто-отступ запутывает меня и запускает

ESC-> :set noai Copy/Paste stuff ESC-> :set ai 

но это становится утомительным через некоторое время. Есть ли обходной путь при вставке строк с вкладками в vi с включенным автоматическим отступом или мне нужно каждый раз отключать авто-отступ, вставлять, снова включать ai?

Заранее спасибо за помощь.

3

1 ответ на вопрос

1
jpaugh

Are you using i<Ctrl>V to paste? Try using "+p instead.

I find this problem whenever I try to use the operating system's copy-n-paste method, versus using vim's. If you try to paste while you're in insert mode, vim thinks that you typed it in really fast instead of pasting. It doesn't know how to keep the formatting in this case.

However, if you exit insert mode Esc, and then paste from the + register (which is aliased to the operating system buffer), it works.

Thus, "+p.

Note that on X-11, you can also use the * register to access the X11 selection. Also, either of these only work if vim has been compiled with X11 integration support. Works for vim as well as gvim, though.

да я пользуюсь яV. Я только что попробовал "+ p, но все, что он напечатал, было: s в моем окне vi. = (
Я не знаю, имеет ли это значение, но я забыл упомянуть, что это на Mac. Я просто нажимаю на терминал, и открывается окно терминала unix Отсюда я запускаю vi.
Будет ли это случай, когда я должен использовать регистр *, который вы упомянули выше? Как бы я использовал его, потому что я ослепляю, используя"* р и это не сработало =)
Еще раз спасибо за вашу помощь.
Classified 10 лет назад 0
Все, что я знаю, это от `: help quoteplus` и`: help quotestar`. Это работает для меня в Linux, но я ничего не знаю о Mac. jpaugh 10 лет назад 0
Если вы не можете найти хорошее решение здесь, люди по адресу vim_use@googlegroups.com умны как способ. Некоторые из них даже разработчики VIM. jpaugh 10 лет назад 0
Спасибо за вашу помощь и советы. Classified 10 лет назад 0