Programing

이름이 지정되지 않은 레지스터에서 Vim + Tmux yank / paste 수정

lottogame 2020. 11. 17. 07:37
반응형

이름이 지정되지 않은 레지스터에서 Vim + Tmux yank / paste 수정


tmux 세션 내에서 vim을 사용하는 동안 이름이 지정되지 않은 레지스터에 붙여 넣거나 붙여 넣을 수 없습니다. 명명 된 레지스터로 이동하는 것은 잘 작동하지만 명명되지 않은 것은 작동하지 않습니다.

오류 :

E353: Nothing in register *

tmux가 없으면 vim이 현재 설정을 사용하여 제대로 작동합니다. 내가 사용할 수 있도록 어떻게 그것을 해결합니까 y다음 p오류없이 레지스터를 지정하지 않고?


오류 메시지 ( Nothing in register *)에서 일반 ? p, Vim 인스턴스가 이름없는 레지스터 * 대신 * 레지스터사용하고 있습니다. 옵션 에 값이 포함되어 있기 때문일 수 있습니다 . 이러한 방식으로 구성되면 Vim은  기본적으로 yank, delete, change 및 put 작업에 대해 이름없는 레지스터 대신 레지스터를 사용합니다 (즉, 접두사 가있는 다른 레지스터를 지정하지 않는 한 , 예 들어  레지스터 에서 넣음 ).clipboardunnamed*""apa

* 이름없는 레지스터는 실제로 이름이 지정됩니다 "(큰 따옴표). 사용하기 위해 이름을 지정할 필요가 없다는 의미에서 "이름 없음"일뿐입니다 (기본값). ""p, 이름이 지정되지 않은 레지스터에서 넣기 위해 말할 필요가 없습니다 p.

의 기본값은를 clipboard포함하지 않으므로 unnamed구성 (또는 플러그인)의 일부에서 비롯된 것일 수 있습니다. 이 명령 :verbose set clipboard?은 현재 값을 설정하는 스크립트를 보여줍니다. 이것이 구성 파일에서 수행되는 경우 tmux에서 실행할 때 수행하지 않는 것이 좋습니다 . 예 :

if $TMUX == ''
    set clipboard+=unnamed
endif

또는 Vim-inside- tmux의 인스턴스가 GUI 선택 / 클립 보드에 액세스 하도록하는 방법이있을 수 있습니다 (따라서 *레지스터 및 / 또는 unnamed에서 작동 clipboard). Mac OS X를 실행하는 경우 tmux 세션 내에서 실행되는 프로세스에 대해 클립 보드 액세스를 다시 활성화하는 해결 방법 래퍼 를 살펴볼 수 있습니다 . 다른 OS 또는 GUI를 사용하는 경우 Vim이 일반적으로 GUI와 통신하는 방법과 작동하지 않는 이유 (예 : X11에서 잘못된 DISPLAY 값, 실행중인 이전 세션에 연결되어있을 수 있음)를 찾아야합니다. 오래된 값이있는 셸).


vim / tmux / osx에서 저에게 적합한 것은 다음과 같습니다.

  1. Homebrew 설치
  2. 사용자 네임 스페이스에 다시 연결 설치 : brew install reattach-to-user-namespace
  3. .vimrc에서 : set clipboard=unnamed
  4. tmux에게 시스템 클립 보드를 사용하도록 지시하십시오. .tmux.conf에서 : set-option -g default-command "reattach-to-user-namespace -l bash"

출처 : https://coderwall.com/p/j9wnfw


fakeclip 많은 단말기에서 예상 TMUX / 화면에 대한 지원을하고 같은 플러그인은 클립 보드 레지스터 동작합니다한다. 그것을 사용하고 있습니까? 문제를 해결할 수 있습니다.

또한이 팁에 관심이있을 수 있습니다. 질문에는 해당되지 않지만 관련이 있습니다. tmux를 실행중인 시스템 / 터미널의 유형에 따라 .tmux.conf. 예를 들어 다음 .tmux.conf은 OS X에서 발췌 한 것입니다 (주석에 몇 가지 지침 포함).

# To use pbcopy and pbpaste on OS X, get this wrapper and install
#    git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
#    cd tmux-MacOSX-pasteboard/
#    make reattach-to-user-namespace
#    mv reattach-to-user-namespace /usr/local/bin
# After installing, the default command can be reset to use the 'reattach-to-user-namespace' 
# wrapper that was compiled/installed as descripted above.
set -g default-command "reattach-to-user-namespace -l /bin/bash"
# #Next, create Ctrl-c and Ctrl-v mappings
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "tmux set-buffer $(reattach-to-user-namespace pbpaste); tmux paste-buffer"

늦은 답변이지만 .tmux.conf다음 줄이 포함되어 있을 수도 있습니다 .

set -g set-clipboard off

결합 .vimrc함유

set clipboard=unnamed

이것은 vim이 거기에없는 클립 보드를 사용하려고 할 것입니다.


OSX에서 경험 한 몇 가지 메모를 수락 된 답변에 추가하려면 다음을 수행하십시오.

  • 당신이 set clipboard=unnamed하고 있는지 확인하십시오set clipboard=unnamedplus
  • 내 tmux 서버 ( $ killall tmux또는 $ tmux kill-session -a)를 종료해야했습니다. tmux 구성 파일을 다시로드하면 default-command가 설정되었지만 시스템 클립 보드에 대한 vim 액세스 권한이 부여되지 않은 것으로 나타났습니다.

참고 URL : https://stackoverflow.com/questions/11404800/fix-vim-tmux-yank-paste-on-unnamed-register

반응형