У меня проблема с запуском vim. Всякий раз, когда я запускаю vim somefile , он запускается так, как будто я нажал c сразу после запуска. Таким образом, если я попытаюсь сразу перейти к концу файла с помощью G , он вместо этого перейдет в конец файла, то есть все строки от строки запуска до конца файла исчезнут, и я вставлю Режим. Я использую терминал vim, а не MacVim, и моя оболочка zsh на случай, если это уместно. Я использую базовую 256-цветовую схему завтрашнего дня как в своей оболочке, так и в vim - темную для оболочки и светлое воплощение для vim. Я использую конфигурацию Janus с довольно минимальной настройкой.

Вот вещи, которые я пытался найти, для решения проблемы:

  1. Закомментируйте все из моего файла .vimrc.after кроме объявлений цветов и шрифтов. Без изменений.
  2. Отключите мои команды цветовой схемы base16 в iTerm2 и vim. Подумал, что сценарий с 256-цветным корпусом вызывал проблему, но не игра в кости.
  3. Удален один пользовательский плагин, который у меня есть в Янусе (Эммет). Нет разницы.
  4. Изменена схема цветов на неосновную16 схему. Нет разницы.

Единственная реальная разница, которую я смог найти, - это iTerm2 и Terminal.app. Кажется, что в Terminal.app команда изменения ограничена одной строкой, независимо от того, какую команду движения я набираю сразу после запуска. Итак, если я наберу G после открытия файла, он не удалит все строки ниже. Он просто удаляет строку, в которой он находится, и входит в режим вставки.

Еще пара доказательств: 1) Если я открою каталог с каталогом vim path/to/directory , я получу немного отличное поведение от Terminal.app и iTerm2. В iTerm2 нет явной проблемы. В Terminal.app я получаю E481: No range allowed сообщение о недопустимом диапазоне в нижней части окна. 2) Если я использую MacVim, поведение, насколько я могу судить, отсутствует. Это заставляет меня думать, что это как-то связано с моей оболочкой. И Terminal.app, и iTerm2 имеют свои терминальные отчеты, установленные на xterm-256color.

Итак, это ситуация. Ниже приведено содержимое моих соответствующих файлов vim. Хотя решение проблемы будет полезным, я больше заинтересован в том, чтобы научиться ловить рыбу здесь. Часть моего разочарования vim в прошлом заключалась в том, что он иногда делал вещи, которые я не понимал. Иногда с помощью опечаток или толстых аппликатур или чего-то еще, но тем не менее я не знал, что я сделал, чтобы вызвать странное поведение, чтобы избежать этого в будущем. Я в той же лодке здесь. Я не хочу знать только, как это исправить, но что пошло не так и какую-то методологию для отслеживания проблемы, которую я мог бы применить к будущим проблемам. Заранее спасибо!

.vimrc.before

set nocompatible
let mapleader=","
set splitbelow
set splitright
call janus#disable_plugin('nerdtree')
if has("gui_running")
  let g:loaded_netrw        = 1 " Disable netrw
  let g:loaded_netrwPlugin  = 1 " Disable netrw
endif

.vimrc

""
"" Janus setup
""

" Define paths
"let g:janus_path = escape(fnamemodify(resolve(expand("<sfile>:p" . "janus" . "janus")), ":h"), ' ')
"let g:janus_vim_path = escape(fnamemodify(resolve(expand("<sfile>:p" . "janus" . "janus" . "vim")), ":h"), ' ')"

let g:home_path = expand("~")
let g:vim_path = g:home_path . "/.dotfiles/vim"
let g:janus_path = g:vim_path . "/janus/janus"
let g:janus_vim_path = g:janus_path . "/vim"

let g:janus_custom_path = g:vim_path . "customization"

if filereadable(g:janus_vim_path . '/core/before/plugin/janus.vim')
    " Source janus's core
    exe 'source ' . g:janus_vim_path . '/core/before/plugin/janus.vim'

    " You should note that groups will be processed by Pathogen in reverse
    " order they were added.
    call janus#add_group("tools")
    call janus#add_group("langs")
    call janus#add_group("colors")

    ""
    "" Customisations
    ""

    if filereadable(expand("~/.vimrc.before"))
      source ~/.vimrc.before
    endif


    " Disable plugins prior to loading pathogen
    exe 'source ' . g:janus_vim_path . '/core/plugins.vim'

    ""
    "" Pathogen setup
    ""

    " Load all groups, custom dir, and janus core
    call janus#load_pathogen()

    " .vimrc.after is loaded after the plugins have loaded
endif

.vimrc.after

let base16colorspace=256  " Access colors present in 256 colorspace
set background=light
colorscheme base16-tomorrow
set guifont=Panic\ Sans:h13

"set tabstop=4
"set shiftwidth=4
"set softtabstop=4
"set expandtab

"let g:user_emmet_install_global = 0
"autocmd FileType html,css,eruby,eruby-rails EmmetInstall

" window
nmap <leader>sw<left>  :topleft  vnew<CR>
nmap <leader>sw<right> :botright vnew<CR>
nmap <leader>sw<up>    :topleft  new<CR>
nmap <leader>sw<down>  :botright new<CR>

" buffer
nmap <leader>s<left>   :leftabove  vnew<CR>
nmap <leader>s<right>  :rightbelow vnew<CR>
nmap <leader>s<up>     :leftabove  new<CR>
nmap <leader>s<down>   :rightbelow new<CR>

" clear search highlight
nnoremap <esc> :noh<return><esc>

" exit insert mode when beginning text movements
:imap jj <Esc>
:imap jk <Esc>
:imap kk <Esc>
:imap kj <Esc>

set clipboard=unnamed


"Helpful stuff from Steve Losh
set list
set listchars=tab:▸\ ,eol:¬ "Change the invisible character display characters.

set wrap
set textwidth=79
set formatoptions=qrn1
set colorcolumn=85

nnoremap / /\v
vnoremap / /\v
set ignorecase
set smartcase
set gdefault
set incsearch
set showmatch
set hlsearch
"nnoremap <leader><space> :noh<cr>
nnoremap <tab> %
vnoremap <tab> %

set encoding=utf-8
set scrolloff=3
set autoindent
set showmode
set showcmd
set hidden
set wildmenu
set wildmode=list:longest
set visualbell
set cursorline
set ttyfast
set ruler
set backspace=indent,eol,start
set laststatus=2
set relativenumber
set undofile

nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
nnoremap j gj
nnoremap k gk

inoremap <F1> <ESC>
nnoremap <F1> <ESC>
vnoremap <F1> <ESC>

" Save on focus lost
au FocusLost * :wa

.gvimrc.before

call janus#disable_plugin('NERDtree')

.gvimrc.after

" Override existing colorscheme with version found in
" ~/.janus/<colorscheme>/colors/<colorscheme>.vim
if exists("g:colors_name") 
  let color_override = expand('~/.janus/' . g:colors_name . '/colors/' . g:colors_name . '.vim')
  if filereadable(color_override)
    exe 'source ' . color_override
  endif
endif

set background=light
colorscheme base16-tomorrow
set guifont=Panic\ Sans:h13

1 ответ1

0

Этот предыдущий вопрос, кажется, решил мою проблему. У Vim неожиданные нажатия клавиш при запуске, что может быть причиной этого? Я видел, что :echo v:termresponse содержал символ с ошибкой c который вызвал проблему, и установка set t_RV= ttymouse=xterm2 действительно волшебным образом устранила проблему, но, как и OP, я понятия не имею, почему это была проблема, как отвечающий знал, что нужно проверить :echo v:termresponse или как set t_RV= ttymouse=xterm2 вошел в сознание ответчика как что-то, что нужно ввести в конфигурационный файл vim для его разрешения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .