2014-01-03 3 views
0

Я пытаюсь скопировать буфер Vim, в буфер обмена, и я сделал следующее:Копирование текущего буфера Vim в буфер обмена

:!cat %|pbcopy # Это отлично работает

Тогда я попытался сопоставить это с ключом лидера (его мой первая попытка нанести что-либо, поэтому, пожалуйста, извините, если найдется что-то глупое).

:map <leader>c :!cat %|pbcopy # Это не работает; ВИМ жалуется: Не команда Редактор

+0

Правда, должно быть, лучше искать. –

ответ

2

Побег трубу

:map <leader>c :!cat %\|pbcopy 

Рассмотрим также с помощью nnoremap, чтобы остановить рекурсивные отображения и заканчивая командой с <CR> поэтому команда запускается автоматически.

nnoremap <leader>c :!cat %\|pbcopy<CR> 

Вы могли бы также рассмотреть возможность использования shellescape только упаковывают файл имеет пробелы или другие необычные символы

nnoremap <leader>c :exec '!cat '.shellescape('%').'\|pbcopy'<CR> 

Или как Питер Rickner говорит просто использовать

nnoremap <leader>c :w !pbcopy<cr> 
+3

Может упростить это: 'nnoremap c: w! Pbcopy ' –

+0

Ничего себе, это прекрасно работает! :) Благодаря! –

+0

Возможно, я должен задать другой вопрос; но если его достаточно просто: существует ли аналогичное решение для копирования выдернутых строк в буфер обмена? –

0

Это будет работать на любой операционной системе , а не только Mac:

:nmap <leader>c :%y+ 

(Я никогда не помню разницу между регистрами "+ и "*.) OTOH, ваш метод будет работать, если вы находитесь на Mac, используя версию vim, которая не поддерживает GUI, например /usr/bin/vi.

:help "+ 
:help :y 
+0

По умолчанию '/ usr/bin/vim' для OS X не построен w /' + clipboard'. –

+0

Вправо: '/ usr/bin/vi' и'/usr/bin/vim' - это тот же файл. (То есть, это символическая ссылка на другую.) Если вы используете этот файл (по имени), мой метод не будет работать. Вы говорите, что можно скомпилировать vim с + буфером обмена, но нет GUI? Мог бы быть правдой, я никогда не пробовал. – benjifisher

 Смежные вопросы

  • Нет связанных вопросов^_^