2012-07-01 5 views
0

Vim에서 이상한 문제가 발생했습니다. 바탕 화면이나 파일 관리자에서 Vim으로 파일을 드래그 앤 드롭하여 편집하고 싶습니다. Gvim은이 동작을 올바르게 처리합니다.Vim의 파일 이름에 작은 따옴표로 파일 편집

콘솔 Vim에서 동일한 작업을 시도 할 때 파일 이름에 대한 경로가 대신 삽입됩니다. 예를 들어, /home/myuser/foo.matic 파일을 드래그 앤 드롭하면 텍스트 문자열 '/home/myuser/foo.matic'이 현재 버퍼에 적용됩니다.

편집 : 파일 이름을 드래그 앤 드롭하면 Vim은 '/home/myuser/foo.matic'을 새로운 디렉토리로 취급합니다.

여기 파일 경로 앞뒤에 따옴표가 있다고 생각합니다. 이들은 gnome-terminal과 terminator 둘 다에 의해 삽입 된 것처럼 보입니다. 드래그 앤 드롭 할 때 파일 이름에서 따옴표를 제거하는 방법이 있습니까? 또는 Vim이 따옴표를 무시할 수있는 방법이 있습니까?

+3

터미널 vim에서 드래그 앤 드롭을 사용하는 것이 이상하게 보입니다. 그래픽 용도로는 gVim이 있습니다. 차라리 vim에': e foo.matic'이나 터미널에'vim foo.matic '을 입력하고 싶습니다. 또 다른 방법은'gvim -p --remote-tab-silent foo.matic'을 사용하여 gvim에서 새 탭으로 파일을 여는 것입니다. – epsilonhalbe

+0

최근에 화면 바꿔 치기 기묘함이 터미널 Vim에서 훨씬 적게 발생한다는 것을 발견했습니다. gVim의 추가 GUI 기능을 거의 사용하지 않았으므로 터미널 Vim을 대신 사용해보십시오. 이해가 될 때마다 파일을 e 또는 NERD Tree로 열지 않고 편집기로 드래그합니다. – rustushki

+0

터미널 Vim에서도 --remote-tab-silent를 사용할 수있는 것처럼 보입니다. 이것은 좋은 선택 일 수 있습니다. – rustushki

답변

2

당신이 vim에게 :e 명령을 내릴 필요는 없지만 직접 정의 할 수는 있습니다. 가장 간단한 솔루션 - 쉘은 쉘에 의해 해석되도록 의도 된 것을 분석하기는 - 아래와 같이 표시됩니다

command -nargs=? -bang -bar E :execute "e<bang> ".fnameescape(system("echo -n ".<q-args>)) 

합니다. 이 명령은 :e[!] {file} 변종 만 허용하며, +cmd++opts은 허용되지 않습니다.

+0

이것은 Vim으로 파일을 드래그하여 내 문제를 해결하는 것 같습니다. 드래그하기 전에 다음을 입력해야합니다. 그러나 실제로 파일 끌기가 필요한만큼 허용됩니다. ZyX 고마워. – rustushki

+0

@rustushki 드래그하기 전에': e'를 타이핑하지 않고': E' 만 타이핑합니다. 나는 그것이 더 좋은 무엇인가 가능하다고 믿지 않는다. (그놈 터미널 문서의 어딘가에서 포인터가있을 수 있지만, 터미널 에뮬레이터는 오래된 터미널과 프레임 버퍼에 비해 꽤 많은 기능을 가지고있다.) 확실히 vim을 패치하지 않고 : drag'n'drop은 GTK, win16 및 win32 GUI에서만 작동합니다. – ZyX