Mapping NERDTREE commands to arrow keys in VIM - vim

I have the following setup in my .vimrc to help me navigate between open tabs in NERDTree
map <C-l> :tabn<CR>
map <C-h> :tabp<CR>
map <C-n> :tabnew<CR>
However this doesn't seem to be working.. Anyone any clues
This is what my entire .vimrc looks like:
After this is when my mapping commands appear

Finally figured out. The below worked for me
nnoremap tp: tabprev
nnoremap tn :tabnext
nnoremap tf :tabfirst
nnoremap tl :tablast
Now i can use tp, tn to move between previous and next tabs

Related

Mapping <c-w> to be "<c-w>w" in Vim

I am having trouble to activate the following mappings:
nnoremap <buffer> <C-K> <c-w>w
nnoremap <buffer> <C-S-K> <c-w>W
Where, I want have "pressing Ctrl+K in normal mode" to send me to the next buffer (of the same screen), in a clockwise way. <c-w>W in Vim will go the other direction. I want to map this action to be Ctrl+Shift+w.
Any idea why the mapping fails? I found only the latex-suite.vim has a mapping of <c-w> and none <c-s-w> has been mapped. The plugin mapping is buffer only.
Thank you for your input.
All the best,
-Linfeng
With the <buffer> keyword, your mappings only apply to the current buffer. So, when you have these in ~/.vimrc, they aren't effective, and if you type them in, you would need to have the same current buffer visible in multiple window splits. I don't think that's what you want. Instead, define them to be global mappings:
nnoremap <C-K> <c-w>w
nnoremap <C-J> <c-w>W
Edit: I've replaced <C-S-K> with <C-J>, because shifted control sequences are generally not available in Vim, unfortunately.
They could still be overwritten by some filetype plugins using nnoremap <buffer> <C-K>.
Alternative
I'd prefer the following set of directional mappings. They provide more precision, at the cost of wasting more keys:
nnoremap <C-j> <c-w>j
nnoremap <C-k> <c-w>k
nnoremap <C-h> <c-w>h
nnoremap <C-l> <c-w>l

VIM Custom arrow key mappings not working with window switching?

I've been trying to create a shortcut for switching between open window splits in vim, rather than having to use ctrl+w+[arrowkey] I would prefer to just be able to use ctrl+[arrow keys].
This is what I currently have in my vimrc:
map <silent> <C-v> <c-w>v
map <silent> <C-Left> <c-w>h
map <silent> <C-Down> <c-w>j
map <silent> <C-Up> <c-w>k
map <silent> <C-Right> <c-w>l
The first shortcut for doing the vsplit works fine, however none of the others work. I've tried several variations of this and yet none of them do anything.
I'm using standard debian wheezy with KDE, vim is running from konsole and the only plugins I have installed are NERDTree and Airline.
I'm hoping someone can help provide a solution because I've been searching online for hours and trying hundreds of options and nothing seems to make any difference.
EDIT
verbatim insert for the shortcuts doesn't output anything at all, neither in shell or vim.
First, make sure that <C-Left> is not handled by konsole. Start a fresh one and use cat:
$ cat
^[[1;5D
That is how it should work for <C-Left>. Similar for other arrows. If <C-Left> doesn't work in such a way, search for "\e[1;5D": ... in /etc/inputrc and ~/.inputrc and comment it. You may have to log out and log in to get effect of these changes.
Next, use
:verbose map
in vim to display all mapped shortcuts and their source. You should see your bindings in this list. Your bindings are correct and all work in my case.
try this:
nnoremap <C-DOWN> <C-W><C-J>
nnoremap <C-UP> <C-W><C-K>
nnoremap <C-RIGHT> <C-W><C-L>
nnoremap <C-LEFT> <C-W><C-H>

How to remap Vim keys (PageUp and PageDown)

I want to remap <PageUp> to <C-u> and PageDown to <C-d> per the Vim scrolling documentation.
As it stands right now, my /etc/vim/vimrc looks like this:
nnoremap <PageUp> <C-u>
nnoremap <PageDown> <C-d>
I've tried a lot of different combinations and nothing I've done has worked.
My goal is to make the cursor move to the Start Of File or EOF when holding down PageUp/PageDown. As it is right now, the cursor stops before it gets all the way to the top (and PageDown scrolls past the EOF). Just annoyances I'm trying to fix.
EDIT: The above settings work fine. I was placing my mappings too early in the file.
What about the following mappings?
nnoremap <PageUp> gg
nnoremap <PageDown> G
Or simply using gg and G?
Instead of placing the mappings into the system-wide /etc/vim/vimrc, you should put user customizations into the ~/.vimrc file. Nonetheless, the global configuration (if that's what you want) should work, too. That it doesn't means that the mappings get cleared or redefined. You can check with
:verbose nmap <PageDown>
If it didn't get redefined, you have to hunt for :nunmap commands in all loaded scripts (:scriptnames), or capture a log with vim -V20vimlog.
You can do this with
map <silent> <PageUp> 1000<C-U>
map <silent> <PageDown> 1000<C-D>
imap <silent> <PageUp> <C-O>1000<C-U>
imap <silent> <PageDown> <C-O>1000<C-D>
from fixing-pageup-and-pagedown

CTRL-K in Vim produces unexpected results

Hi I'm trying to optimise my window management in vim by mapping ctrlk to ctrl+w, k so i can just press ctrl+k to switch to the split window above the one I'm working in (I'm doing this for h,j and l also but it's only k that's causing the problem).
I've added this into my .vimrc
noremap <silent> <c-k> <C-W>k
noremap <silent> <c-j> <C-W>j
noremap <silent> <c-h> <C-W>h
noremap <silent> <c-l> <C-W>l
However if I press ctrl+k, then something weird happens. It changes depending on where I am in the document.
If I'm at the top of a document with many lines beneath my curser, the cursor hops down a few lines and columns into a completely different place.
If I'm at the bottom of a document, it creates loads of spaces from the cursor onwards.
I've tested and removing the above lines causes the symptoms to stop happening. I'm just really confused as to what is going on!
Some info: I'm using the vim binary that comes with macvim via the command line.
Any help would be greatly appreciated!
Thanks!
I can’t explain the second problem, but if you pasted everything directly from the vimrc then you have lots of trailing spaces that must not be there. It can explain the first problem. Try running
:%sm/\s\+$
then save and see whether problem disappears. If it is so, use
:set list listchars=trail:-
to be able to see trailing spaces so that you won’t run into this problem again.
Maybe <C-k> is already mapped to something else. Try :verbose map <C-k>.
Maybe your mapping is triggered in visual or operator mapping, where <c-w>k has a different meaning.
You could try this:
nnoremap <C-J> <C-W>j
nnoremap <C-K> <C-W>k
nnoremap <C-H> <C-W>h
nnoremap <C-L> <C-W>l
, which will trigger only in normal mode.

Remap Ctrl-ArrowKeys to switch between split buffers

How can I remap Ctrl-ArrowKeys to move between split buffers, like I can with <C-w> <ArrowKeys>?
Right now <C-Right> deletes until the end of line and goes into insert mode - which is not what i prefer (I use C for this) and would be happy to get rid of this behavior.
nnoremap <silent> <C-Right> <c-w>l
nnoremap <silent> <C-Left> <c-w>h
nnoremap <silent> <C-Up> <c-w>k
nnoremap <silent> <C-Down> <c-w>j
It must be said that not all mappings work on all terminal, so you mileage may vary. This is working well with gvim.
I also use those mapping when working with spli windows:
" To move between buffers and maximise the selected one
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_
Combined with
" This sets the minimum window height to N
set wmh=0
It's pretty good.
I have been used this for a while now and I'm completely addicted!

Resources