У меня проблема с запуском vim. Всякий раз, когда я запускаю vim somefile
, он запускается так, как будто я нажал c
сразу после запуска. Таким образом, если я попытаюсь сразу перейти к концу файла с помощью G
, он вместо этого перейдет в конец файла, то есть все строки от строки запуска до конца файла исчезнут, и я вставлю Режим. Я использую терминал vim, а не MacVim, и моя оболочка zsh на случай, если это уместно. Я использую базовую 256-цветовую схему завтрашнего дня как в своей оболочке, так и в vim - темную для оболочки и светлое воплощение для vim. Я использую конфигурацию Janus с довольно минимальной настройкой.
Вот вещи, которые я пытался найти, для решения проблемы:
- Закомментируйте все из моего файла
.vimrc.after
кроме объявлений цветов и шрифтов. Без изменений. - Отключите мои команды цветовой схемы base16 в iTerm2 и vim. Подумал, что сценарий с 256-цветным корпусом вызывал проблему, но не игра в кости.
- Удален один пользовательский плагин, который у меня есть в Янусе (Эммет). Нет разницы.
- Изменена схема цветов на неосновную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