简体   繁体   中英

Why doesn't my vim mapping work?

I followed the guide here to create vim mapppings. Put the following in my .vimrc file

let mapleader=','
if exists(":Tabularize")
  nmap <Leader>a= :Tabularize /=<CR>
  vmap <Leader>a= :Tabularize /=<CR>
  nmap <Leader>a: :Tabularize /:\zs<CR>
  vmap <Leader>a: :Tabularize /:\zs<CR>
endif

The page says when I type ,a= it should tell Tabularize to align my lines. But instead it inserts the character = where the cursor is.

I have Tabularize installed and the :Tabularize command does work when I call it without mapping.

What am I doing wrong?

Your .vimrc file is read and executed before plugins are loaded, so :Tabularize isn't defined.

To find out the exact order in which the various scripts are called at startup you can run the command:

:scriptnames

and you can learn the details about the initialization process with:

:help startup

Make sure that you set your mapleader to , . Originally it is mapped to \\ .

To accomplish this add this to your vimrc or type in the command window:

let mapleader=","

Although from your code it looks like you are doing this, you have to make sure that it didn't get reset somewhere. In order to see what it is set to currently type let mapleader in the command window.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM