온과 endwise를 동시에 사용합니다.

3809 단어 vim-endwise

묘사

안녕!
vim endwise를 사용해서 단행을 취소하는 능력을 유지하고 있습니다.내vimrc에 이게 있어.
inoremap <expr> <silent> <CR> pumvisible() ? "<C-y>" : "<C-g>u<CR>"
enter 키를 누르면 다음과 같이 삽입됩니다.
pumvisible() ? "" : "
나는 자신의 맵을 시도했다.
let g:endwise_no_mappings = 1
imap <expr> <silent> <CR> pumvisible() ? "<C-y>" : "<C-g>u<CR><Plug>DiscretionaryEnd"
예상한 바와 같이, 나는 무한 순환을 얻었고, inoremap 플러그인을 호출하지 않을 것입니다.
나는 이것이 #10과 유사하다고 추측하지만, 나는 충돌하는 플러그인이 없다.
이 난제를 어떻게 벗어날 수 있는지 아십니까?

토론 #1

정확하게 끼워 넣기 위해서는 <C-R>=...<CR>지도가 아니라 <expr>지도를 사용해야 한다고 생각합니다.

토론 #2

저도 같은 문제가 있습니다. @tpop 건의에 따라 문제를 해결합니다.

토론 #셋

@dhanifudin에서 사용한 전체 회선을 공유할 수 있습니까?나는 지금까지 진정으로 해낸 적이 없다:

토론 #4

@christianrondeau~~
이거 내 거야.
imap <C-R>=...<CR> pumvisible() ?
        \ deoplete#mappings#close_popup() : "\<CR>\<Plug>AutoPairsReturn"
비추는vim 문서를 읽은 후, 내가 잘못을 저질렀다는 것을 의식하십시오http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(섹션 1).
imap <CR> <C-R>=pumvisible() ? deoplete#mappings#close_popup() : "\n"<CR>
<expr>나로서는 그것을 일하게 할 수 없다:)
마지막 예시에서vim endwise가 호출되지 않았고, 앞에 있는 것도 호출되지 않았습니다. (아래의 테스트를 참고하십시오.)
다음은 내가 시도한 몇 가지 일이다. (나는 정말 한 줄을 취소하고vim endwise를 사용하고 싶다.)
imap <CR> <C-R>=Handlecr()<CR>
function! Handlecr() abort
  if(pumvisible())
    return "\<C-y>"
  else
    return "\<C-g>u\<CR>\<Plug>DiscretionaryEnd"
  endif
endfunction
이렇게 하면 다음과 같은 결과가 발생합니다.
<t_ý>RDiscretionaryEnd
만약 내가 <C-R>=... 부품을 뜯어낸다면, 그것은 줄마다 취소할 수 있지만,vim 단부에는 적용되지 않는다.
나도 시도해 봤다.
imap <CR> <C-R>="\n\<Plug>DiscretionaryEnd"<CR>
이것도 마찬가지로

토론 #5

대신 \<Plug>DiscretionaryEnd 하나 주세요\<CR>.\n 매핑을 해석할 수 없을 것 같습니다. E114: Missing quote: "\나는 하나의 줄을 취소할 수도 있고vim endwise를 사용할 수도 있는 간단한 방법이 있다고 믿는다.어제 나는 나의 마이크로 태블릿PC에서 비행기를 조종하다가 많은 노선을 잃어버렸지만, 나는Vim이 이 점을 할 수 없다는 것을 받아들일 수 없었다.이것은 처음이 될 것입니다: <C-R> @tpope 실행을 허용하는 <Plug> 줄을 바꾸는 PR은 무엇입니까?이 생각은 결코 완전히 충실하지는 않지만, 이렇게 될 것이다.
execute "imap <CR> <CR><Plug>DiscretionaryEnd" . exists('g:endwise_undolinebreaks') ? "<C-G>u" : ""
저도 실제 줄 바꾸기 전에

토론 #6

키를 추가하려고 시도합니다. <C-G>u 키를 눌렀을 때, 첫 번째 취소는 삭제되고, 두 번째 취소는 줄 바꾸기 자체를 삭제하지만, 무한 순환에 들어갑니다.나는 왜 그런지 아직 이해하지 못했다.
하지만 내게는 좋다.그것은 내가 예상한 대로 줄 바꾸기를 취소할 수 있도록 허락한다.나도 <C-G>u를 사용할 수 있고 <CR>에서만 사용할 수 있지만 이것은 endif 중의 유용한 기능일 수 있다고 생각한다.당신은 어떻게 생각합니까?g:endwise_no_mappings 비슷한 vimrc지도를 vim-endwise지도로 바꿨는데 효과가 좋았어요.그러나vim endwise는 지도를 다시 비추는 동안 제 지도를 무시했습니다.

토론 #7

이 경우 <expr>를 추가할 수 있습니까?요청을 받아서 기쁩니다.<CR>@christianrondeau <C-R>=...<CR>endwise가 불러오기 전에 불러오면 원하는 일을 해야 한다고 생각합니까?
#우리는 무조건 추가할 수 없는 어떤 이유도 생각나지 않는다<silent>.<silent>@t가 효과가 있기를 바랍니다...이것은 듣기에 너무 간단하다. 사실일 수는 없지만, 보기에는 정말이다.만약 내가 무엇을 발견한다면, 나는 보고할 것입니다. 그러나vim endwise 이전에 맵을 정의하는 것은 현재 뻔한 해결 방안인 것 같습니다.) 당신의 관심에 감사 드립니다.

좋은 웹페이지 즐겨찾기