2013-09-07 3 views
0

나는 종종 많은대체물에 확인 대화가 필요하다는 것을 나타내는 가장 좋은 방법은 무엇입니까?

두 번 항목이 내 메뉴에서 기능을 호출 : - 일 정상 대체
위해 -
확인 대화 상자 (GC)와 subsitution 하나

PE :

vnoreme 20.900 &Edit.Delete\ All\ but\ 1st\ Doubles\    :<C-U>call <SID>DeleteD("'<,'>","confirm-no")<CR> 
vnoreme 20.901 &Edit.Delete\ All\ but\ 1st\ Doubles\ (gc)\  :<C-U>call <SID>DeleteD("'<,'>","confirm-yes")<CR> 

확인 대화 상자를 나타 내기 위해 위에서 사용하는 더 좋은 방법은 없을까요? (모든 이중 항목을 피하기 위해)

P.e. 함수가 입력 대화 상자를 호출 할 때 모든 대체 후에 대화 상자 확인을 추가하도록 표시 할 수있는 확인란을 추가하고 싶습니다. 그러나 불행히도 이러한 매개 변수는 존재하지 않으므로 (autohotkey와 같이) 직접 입력 대화 상자 GUI를 만들 수 있습니다.

답변

2

글쎄, 각 대체가 확인되는지 여부를 묻기 위해 Delete() 함수를 변경할 수 있습니다. 이런 식으로 뭔가 :

fu! Delete(range) 
let confirm = confirm("confirm each change?", "&yes\n&no", 1) 
let cmd=printf("%ss/foobar/foobaz/g%s", a:range, confirm ? 'c' : '') 
exe cmd 
endfu 

간단한 대체를 사용하는 경우를 사용하는 방법을 배우게,

을 또는 (이것은 당신은 아마 적어도 검색을 변경하고 기준을 대체 할, 그냥 예입니다) 예 명령어 :promptrepl, 예. :promptrepl foobar 검색 필드가 'foobar'로 설정되고 대체 부품을 입력하고 원하는 버튼을 누르기 만하면 검색/대체 대화 상자가 열립니다.

+0

': promptrepl'을 이용해 주셔서 감사합니다. – romainl

+0

크리스찬, 고맙습니다. 다른 솔루션을 원했지만, 입력 상자 나 그와 비슷한 상자에있는 체크 박스와 같았습니다.하지만 그것이 잘못된 희망이라는 것을 이해했습니다 :) 단지 한 가지 질문 만 할 수 있습니다. 단축키가있는 모든 기능의 명령? (나는 자주 확인 명령을 사용하지 않는다) – Reman