MacVim работает неправильно: предупреждение: терминал работает не полностью

(этот вопрос размещен в vim_mac группа пользователей в Google, но я не получил решение)

при нажатии на ключевое слово, в терминале vim он будет производить человек
страница корректно.
Однако в MacVim он выдает предупреждение:

WARNING: terminal is not fully functional 

последовательность управления ANSI отображается и не корректно экранируется.
Скриншот можно найти здесь.

нужна помощь, спасибо!

26
задан Heptite
26.03.2023 22:17 Количество просмотров материала 3330
Распечатать страницу

4 ответа

на ConqueTerm Vim плагин предоставляет GUI на основе экземпляров Vim С довольно надежной эмуляцией терминала. Это требует Vim 7.0+ (7.3+ для Windows) составлена с +python или +python3;MacVim удовлетворяет этим требованиям.

вот функция и привязка, которая повторно реализует функциональность нормального режима K команда используя ConqueTerm (вы можете положить его в ваше .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
5
отвечен Chris Johnsen 2023-03-28 06:05

Это не может быть решена без большого количества программирования, потому что, как этот поток состояний, MacVim создает свой собственный "терминал", который не соответствует ни одной записи terminfo, следовательно,less не может правильно его использовать. Вы можете попробовать тыкать $TERM в MacVim через :set term=..., но я не думаю, что есть какое-либо значение, которое было бы подходящим для MacVim.

если у вас есть графический просмотрщик странице вы можете установить его как keywordprg. См.:h keywordprg для получения более подробной информации.

1
отвечен Ignacio Vazquez-Abrams 2023-03-28 08:22

Если вы используете Linux,вы можете попробовать мой скрипт,просто положите его в .файл vimrc Прежде чем попробовать, вы должны проверить, поддерживает ли ваш vim python выполните эту команду для проверки: 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
0
отвечен windclose 2023-03-28 10:39

попробуйте решить эту проблему, включив встроенный плагин man-страницы:

runtime ftplugin/man.vim
if has("gui_running")
    nnoremap K :<C-U>exe "Man" v:count "<C-R><C-W>"<CR>
endif
0
отвечен cmcginty 2023-03-28 12:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх