MacVim K não está funcionando corretamente: ATENÇÃO: o terminal não está totalmente funcional

4

(Esta questão está publicada em grupo de utilizadores vim_mac no Google, mas eu não consegui uma solução)

Ao pressionar < K > na palavra-chave, no terminal vim ele irá produzir o homem página corretamente. No entanto, no MacVim, gera um aviso:

WARNING: terminal is not fully functional 

A sequência de controle ANSI é exibida e não é corretamente ignorada. Uma captura de tela pode ser encontrada aqui .

Ajuda necessária, obrigado!

    
por Ivan Z. G. Xiao 29.05.2011 / 04:45

4 respostas

5

O plug-in ConqueTerm Vim fornece instâncias baseadas em GUI de Vim com uma emulação de terminal bastante robusta. Requer Vim 7.0+ (7.3+ para Windows) compilado com +python ou +python3 ; O MacVim satisfaz esses requisitos.

Aqui está uma função e uma ligação que re-implementa a funcionalidade do comando K do modo normal usando o ConqueTerm (você pode colocá-lo no seu .vimrc ):

:function! ConqueMan()
    let cmd = &keywordprg . ' '
    if cmd ==# 'man ' || cmd ==# 'man -s '
        if v:count > 0
            let cmd .= v:count . ' '
        else
            let cmd = 'man '
        endif
    endif
    let cmd .= expand('<cword>')
    execute 'ConqueTermSplit' cmd
:endfunction
:map K :<C-U>call ConqueMan()<CR>
:ounmap K
    
por 29.05.2011 / 08:22
1

Isso não pode ser resolvido sem muita programação porque, como esse segmento afirma, o MacVim cria seu próprio "terminal" que não está em conformidade com nenhuma entrada terminfo, portanto less não pode manipulá-lo corretamente. Você pode tentar cutucar $TERM no MacVim via :set term=... , mas não acho que exista algum valor que seja apropriado para o MacVim.

Se você tiver algum visualizador gráfico de páginas do manual, poderá defini-lo como keywordprg . Veja :h keywordprg para mais detalhes.

    
por 29.05.2011 / 05:08
0

Se você usa o Linux, você pode tentar o meu script, basta colocá-lo no arquivo .vimrc Antes de tentar, você deve verificar se o seu suporte vim python execute este comando para verificar: vim --version | grep + python

"my K
function! KyMANit()
python<<EOF
import os
import vim
import re
col=vim.current.window.cursor[1] #得到col 
line=vim.current.line
cmd_line='gnome-terminal -e "man '  #you may replace the gnome-terminal with another terminal emulator.However in Ubuntu 10.04,it's perfect

for m in re.finditer(r"\w+",line):
    if m.start()<=col and m.end()>=col:
        cmd_line+=m.group()+'"'
        os.system(cmd_line)
EOF
endfunction
map K :<C-U>call KyMANit()<CR>
ounmap K
    
por 03.01.2013 / 16:19
0

Tente resolver isso ativando o plug-in de página man integrado:

runtime ftplugin/man.vim
if has("gui_running")
    nnoremap K :<C-U>exe "Man" v:count "<C-R><C-W>"<CR>
endif
    
por 09.01.2017 / 19:47

Tags