2

I cannot enter command mode by typing :.

What's more , whatever key I press, Vim will enter insert mode and type the word I've just typed. i.e. I type j, and the cursor doesn't move downwards but Vim enters insert mode and types the letter j on the screen, which is very weird.


I reinstalled Vim and it made no difference

Now as I cannot enter command mode, I cannot type :wq to save any change to vimrc file.

If the is problem caused by the wrong setting in vimrc, I have no idea about how to fix it. If not, what's the cause of the issue?


.vimrc

set nocompatible
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'tmhedberg/SimpylFold'
Plugin 'vim-scripts/indentpython.vim'
Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/syntastic'
Plugin 'nvie/vim-flake8'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
"color scheme
Plugin 'altercation/vim-colors-solarized'
" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"let nerdtree ignore .pyc file
let NERDTreeIgnore=['\.pyc$', '\~$'] 
" change mapleader to ,
:let mapleader = "\<Space>"

" Enable folding
set foldmethod=indent
set foldlevel=99

" watch the text content in the folding block
let g:SimpylFold_docstring_preview=1

" set python file indent type
au BufNewFile,BufRead *.py
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\ set fileformat=unix

""""for the fullstack developer
au BufNewFile,BufRead *.js, *.html, *.css
\ set tabstop=2
\ set softtabstop=2
\ set shiftwidth=2

" make the additional whitespace show as the red
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/

"set encoding method 
set encoding=utf-8

"make the code more beautiful
let python_highlight_all=1
syntax on

"let vim visit the system clipboard
set clipboard=unnamed

"for the direction button goes wrong
set term=builtin_ansi
let g:spf13_no_omni_complete=1
inoremap <ESC>oA <ESC>ki
inoremap <ESC>oB <ESC>ji
inoremap <ESC>oC <ESC>li
inoremap <ESC>oD <ESC>hi

"map the G
nnoremap <CR> G

"go to the beginning of the file 
nnoremap <BS> gg

"delete the whole line and enter insert mode
:nnoremap <leader>d ddO

"fast edit and source the vimrc file
:nnoremap <leader>ev :vsplit $MYVIMRC<cr>
:nnoremap <leader>sv :source $MYVIMRC<CR>

"surround the string with "
:nnoremap <leader>' viw<esc>a"<esc>bi"<esc>lel 

"open NERDTree quickly
:nnoremap <leader>n :NERDTree<cr>

"fold the block
:nnoremap <space> za

" short cut to navigate the split window
:nnoremap <C-J> <C-W><C-J>
:nnoremap <C-H> <C-W><C-H>
:nnoremap <C-L> <C-W><C-L>
:nnoremap <C-K> <C-W><C-K>

"copy paste from system + register
:noremap <leader>y "+y
:noremap <leader>p "+p

"zoom in/zoom out window size
:nnoremap <leader>- <C-W>-

"use F9 to run the python file in vim 
nnoremap <buffer> <leader>r :exec '!python' shellescape(@%, 1)<cr>

"go to the definition by ycm
let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g  :YcmCompleter GoToDefinitionElseDeclaration<CR>

"press multiple v select from a character a word to a sentence a block
vmap v <Plug>(expand_region_expand)

"come back to the last selection
vmap <C-v> <Plug>(expand_region_shrink)

"change esc to jk 
:noremap jk <esc>

"disable the esc button 
:inoremap <esc> <nop>

"set <leader>c to take comment
"for .js file
"for .py file 
:autocmd FileType javascript nnoremap <buffer><leader>c I//<esc>
:autocmd FileType python nnoremap <buffer> <leader>c I#<esc>

" change the color of ycm preview window
highlight Pmenu ctermfg=2 ctermbg=3 guifg=#ffffff guibg=#6495ED

"no swap file
set noswapfile

" colorscheme 
set t_Co=256
if has('gui_running')
  set background=dark
  colorscheme solarized
else
  colorscheme zenburn
endif

"let the screen clear when quitting

"modify the window
set modifiable

"clear the window and quit / save quit
:set t_te=^[[H^[2J 

If it's a problem with my .vimrc, how can I edit the file and save the edit in these circumstances?

Zanna
  • 69,223
  • 56
  • 216
  • 327
  • Can we see contents of `.vimrc`? – George Udosen Nov 17 '17 at 14:00
  • Are you hitting `ESC` before `:`? – steeldriver Nov 17 '17 at 14:10
  • @ steeldriver what means hitting esc before : ... if it means I press` :` just after I hit `ESC`, no of course not – doUWannaBuildASnowMan Nov 17 '17 at 14:14
  • 2
    @LFBuildAMountain - You've got the *of course not* wrong. Just to be clear: hitting `ESC` followed by `:` leaves you in insert mode? – Lieven Keersmaekers Nov 17 '17 at 14:29
  • 1
    @Zanna hit `:` normally can cause Vim to enter command mode , precisely when I immediately open Vim and I press : , Vim can enter the command line , but if I press i and enter the insert mode once. after I press `ESC` to quit the insert mode ,every next time , I press whatever key like` j` ,which should move the cursor downwards , `y` ,which should copy, these key will not take effect but enter the insert mode again from normal mode and type the letter `j `,`k` on the screen – doUWannaBuildASnowMan Nov 17 '17 at 14:49
  • @Lieven Keersmaekers yes, when I have quit the insert mode and already at normal mode by `ESC`, and then I directly press `: `and try to enter command line but fail and Vim enters the insert mode again and type the character `: `on the screen – doUWannaBuildASnowMan Nov 17 '17 at 14:54
  • A suggestion regarding your "surround string with quotes" map: `c""P` allows you to do the job with multiple words selected. – MDeBusk Jun 03 '22 at 00:54

1 Answers1

4

You're stuck in insert mode because the ESC key is disabled. Take the following out of your .vimrc:

"disable the esc button 
:inoremap <esc> <nop>
steeldriver
  • 131,985
  • 21
  • 239
  • 326