theniceboy/nvim

The Ultimate NeoVim Config for Colemak Users

Vim Script

2,181

132 commits

updated May 19, 2026

See the code

README

The Ultimate NeoVim Config for Colemak Users

Sponsored by Instaboard

中文版

Please DO NOT just copy this configuration folder without really looking at it! Please, at least, read this README file!

Requirements

  • This nvim configuration REQUIRES NeoVim 0.6.0+

After Installation, You Need To

  • Install pip3, and do pip3 install --user pynvim
  • Install node, and do npm install -g neovim
  • Install nerd-fonts (actually it's optional but it looks real good)

After Installation, You Might Want To

First of all

  • Do :checkhealth

For Python Debugger (via vimspector)

  • Install debugpy (pip)

Config Python path

  • Well, make sure you have python
  • See _machine_specific.vim

For Taglist:

  • Install ctags for function/class/variable list

For FZF

  • Install fzf
  • Install ag (the_silver_searcher)

And also...

  • Install figlet for inputing text ASCII art
  • Install xclip for system clipboard access (Linux and xorg only)

Keyboard Shortcuts

1 Basic Editor Features

1.1 The Most Basics

k : switchs to INSERT : mode (same as key i in vanilla vim)

Q : quits current vim window (same as command :q in vanilla vim)

S : saves the current file (same as command :w in vanilla vim)

IMPORTANT

Since the i key has been mapped to k, every command (combination) that involves i should use k instead (for example, ciw should be ckw).

1.2 Remapped Cursor Movement

ShortcutActionEquivalent
uCursor up a terminal linek
eCursor down a terminal linej
nCursor lefth
iCursor rightl
UCursor up 5 terminal lines5k
ECursor down 5 terminal lines5j
NCursor to the start of the line0
ICursor to the end of the line$
Ctrl uMove the view port up 5 lines without moving the cursorCtrl y
Ctrl eMove the view port down 5 lines without moving the cursorCtrl e
hMove to the end of this worde
WMove cursor five words forward5w
BMove cursor five words forward5b

1.3 Remapped Insert Mode Keys

ShortcutAction
Ctrl aMove cursor to the end of the line
Ctrl uMove the character on the right of the cursor to the end of the line

1.4 Remapped Text Manipulating Commands in Normal Mode

ShortcutAction
lundo
<Un-indent
>Indent
SPACE SPACEGoto the next placeholder (<++>)

1.5 Other Useful Normal Mode Remappings

ShortcutAction
rCompile/Run the current file
SPACE s cToggle spell suggestion a
SPACE d wFind adjacent duplicated word
SPACE t tConvert every 4 Spaces to a tab
SPACE oFold
SPACE -Previous quick-fix position
SPACE +Next quick-fix position
\ pShow the path of the current file
SPACE /Create a new terminal below the current window

1.6 Remapped Commands in Visual Mode

ShortcutAction
YCopy selected text to system clipboard

2 Window Management

2.1 Creating Window Through Split Screen

ShortcutAction
s uCreate a new horizontal split screen and place it above the current window
s eCreate a new horizontal split screen and place it below the current window
s nCreate a new vertical split screen and place it left to the current window
s iCreate a new vertical split screen and place it right to the current window
s vSet the two splits to be vertical
s hSet the two splits to be horizontal
s r vRotate splits and arrange splits vertically
s r hRotate splits and arrange splits horizontally

2.2 Moving the Cursor Between Different Windows

ShortcutAction
SPACE + wMove cursor to the next window
SPACE + nMove cursor one window left
SPACE + iMove cursor one window right
SPACE + uMove cursor one window up
SPACE + eMove cursor one window down

2.3 Resizing Different Windows

Use the arrow keys to resize the current window.

2.4 Closing Windows

ShortcutAction
QClose the current window
SPACE qClose the window below the current window. (The current window will be closed if there is no window below)

3 Tab Management

ShortcutAction
t uCreate a new tab
t nGo one tab left
t iGo One tab right
t m nMove tab left
t m iMove tab right

4 Terminal Keyboard Shortcuts

ShortcutAction
Ctrl nEscape from terminal input mode

Plugins Keybindings (Screenshots/GIF provided!)

AutoCompletion

COC (AutoCompletion)

ShortcutAction
Space yGet yank history list
gdGo to definition
grList references
giList implementation
gyGo to type definition
Space r nRename a variable
Gif

coc-snippets

ShortcutAction
Ctrl eExpand a snippet
Ctrl n(in snippet) Previous Cursor position in snippet
Ctrl e(in snippet) Next Cursor position in snippet

GIF Demo

File Navigation

coc-explorer (file browser)

ShortcutAction
ttOpen file browser
?show help (in explorer)
Png

rnvimr - file browser

  • Make sure you have ranger installed

Press R to open Ranger (file selector)

And Within rnvimr (ranger), you can:

ShortcutAction
Ctrl tOpen the file in a new tab
Ctrl xSplit up and down with the file
Ctrl vSplit left and right with the file
Gif

FZF - the fuzzy file finder

ShortcutAction
Ctrl pFZF Files
Ctrl uMove up 1 item
Ctrl eMove down 1 item
Ctrl wFZF Buffers
Ctrl fFZF Files' Content
Ctrl hFZF Recent Files
Ctrl tFZF Tags
Gif

xtabline (the fancy tab line)

ShortcutWhat it creates
toCycle tab mode
\pShow current path
Gif

Text Editing Plugins

vim-table-mode

ShortcutAction
SPACE t mToggle table mode
SPACE t rRealign table

See :help table-mode.txt for more.

Undotree

ShortcutAction
Shift + LOpen Undotree
uNewer Version
eOlder Version
Png

vim-visual-multi

ShortcutAction
Ctrl+kSelect next key (multiple cursors)
qDeselect the current keys (multiple cursors)
-Select the previous key
=Select the next key
EscQuit mutiple cursors
Gif Gif Gif Gif

vim-surround

To add surround (string -> "string"):

string

press: yskw':

'string'

To change surround

'string'

press: cs'":

"string"
Gif

vim-subversive

New operator: s:

You can execute s<motion> to substitute the text object provided by the motion with the contents of the default register (or an explicit register if provided). For example, you could execute skw to replace the current word under the cursor with the current yank, or skp to replace the paragraph, etc.

vim-easy-align

Press ga + symbol in normal or visual mode to align text based on symbol

Gif

AutoFormat

Press \ f to format code

vim-markdown-toc (generate table of contents for markdown files)

In markdown files, type :Gen then tab, you'll see your options.

Gif

Vista.vim

Press T to toggle function and variable list

Gif

Find and Replace

Far.vim - find and replace

Press SPACE f r to search in cwd.

Gif

vim-gitgutter

ShortcutAction
HShow git hunk at current line
SPACE g -Go to previous git hunk
SPACE g +Go to next git hunk
SPACE g fFold everything except hunks

fzf-gitignore

Press Space g i to create a .gitignore file

Png Png

Others

vim-calendar

ShortcutAction
\ \Show clock
\ cShow calendar
Png

Goyo - Work without distraction

Press g y to toggle Goyo

Png

suda.vim

Forgot to sudo vim ...? Just do :sudowrite or :sw

coc-translator

Press ts to translate word under cursor.

Png

Custom Snippets

Markdown

ShortcutWhat it creates
,n---
,bBold text
,ssliced text
,iitalic text
,dcode block
,cbig block of code
,m- [ ] check mark
,ppicture
,alink
,1# H1
,2## H2
,3### H3
,4#### H4
,l--------

,f to go to the next <++> (placeholder)

,w to go to the next <++> (placeholder) and then press Enter for you

Some Weird Stuff

Press tx and enter your text

tx Hello<Enter>

 _   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/

Customized Vertical Cursor Movement

This NeoVim configuration includes a customized vertical cursor movement tailored for Colemak users. It can be located in cursor.vim, and it serves as an alternative to the "number + up/down" key combination.

In order to move the cursor up x lines, press the [ key, and treat the middle row of the Colemak keyboard layout ("arstdhneio") as number 1 to 0. Press the numbers that you'd like your cursor to move (x) and press the space bar.

To move the cursor down, press the ' key instead of the [ key, and the rest would be the same.

Example:

ShortcutAction
[ a o o SPACEMove the cursor up 100 lines
' a r s SPACEMove the cursor down 123 lines
[ d o SPACEMove the cursor up 50 lines

Note: As of now, you may only move vertically up to 199 lines with this key configuration!

coc
colemak
config
language-server-protocol
neovim
nvim
nvimrc
vim
vimrc

theniceboy/nvim

The Ultimate NeoVim Config for Colemak Users

Vim Script

2,181

132 commits

updated May 19, 2026

See the code

README

The Ultimate NeoVim Config for Colemak Users

Sponsored by Instaboard

中文版

Please DO NOT just copy this configuration folder without really looking at it! Please, at least, read this README file!

Requirements

  • This nvim configuration REQUIRES NeoVim 0.6.0+

After Installation, You Need To

  • Install pip3, and do pip3 install --user pynvim
  • Install node, and do npm install -g neovim
  • Install nerd-fonts (actually it's optional but it looks real good)

After Installation, You Might Want To

First of all

  • Do :checkhealth

For Python Debugger (via vimspector)

  • Install debugpy (pip)

Config Python path

  • Well, make sure you have python
  • See _machine_specific.vim

For Taglist:

  • Install ctags for function/class/variable list

For FZF

  • Install fzf
  • Install ag (the_silver_searcher)

And also...

  • Install figlet for inputing text ASCII art
  • Install xclip for system clipboard access (Linux and xorg only)

Keyboard Shortcuts

1 Basic Editor Features

1.1 The Most Basics

k : switchs to INSERT : mode (same as key i in vanilla vim)

Q : quits current vim window (same as command :q in vanilla vim)

S : saves the current file (same as command :w in vanilla vim)

IMPORTANT

Since the i key has been mapped to k, every command (combination) that involves i should use k instead (for example, ciw should be ckw).

1.2 Remapped Cursor Movement

ShortcutActionEquivalent
uCursor up a terminal linek
eCursor down a terminal linej
nCursor lefth
iCursor rightl
UCursor up 5 terminal lines5k
ECursor down 5 terminal lines5j
NCursor to the start of the line0
ICursor to the end of the line$
Ctrl uMove the view port up 5 lines without moving the cursorCtrl y
Ctrl eMove the view port down 5 lines without moving the cursorCtrl e
hMove to the end of this worde
WMove cursor five words forward5w
BMove cursor five words forward5b

1.3 Remapped Insert Mode Keys

ShortcutAction
Ctrl aMove cursor to the end of the line
Ctrl uMove the character on the right of the cursor to the end of the line

1.4 Remapped Text Manipulating Commands in Normal Mode

ShortcutAction
lundo
<Un-indent
>Indent
SPACE SPACEGoto the next placeholder (<++>)

1.5 Other Useful Normal Mode Remappings

ShortcutAction
rCompile/Run the current file
SPACE s cToggle spell suggestion a
SPACE d wFind adjacent duplicated word
SPACE t tConvert every 4 Spaces to a tab
SPACE oFold
SPACE -Previous quick-fix position
SPACE +Next quick-fix position
\ pShow the path of the current file
SPACE /Create a new terminal below the current window

1.6 Remapped Commands in Visual Mode

ShortcutAction
YCopy selected text to system clipboard

2 Window Management

2.1 Creating Window Through Split Screen

ShortcutAction
s uCreate a new horizontal split screen and place it above the current window
s eCreate a new horizontal split screen and place it below the current window
s nCreate a new vertical split screen and place it left to the current window
s iCreate a new vertical split screen and place it right to the current window
s vSet the two splits to be vertical
s hSet the two splits to be horizontal
s r vRotate splits and arrange splits vertically
s r hRotate splits and arrange splits horizontally

2.2 Moving the Cursor Between Different Windows

ShortcutAction
SPACE + wMove cursor to the next window
SPACE + nMove cursor one window left
SPACE + iMove cursor one window right
SPACE + uMove cursor one window up
SPACE + eMove cursor one window down

2.3 Resizing Different Windows

Use the arrow keys to resize the current window.

2.4 Closing Windows

ShortcutAction
QClose the current window
SPACE qClose the window below the current window. (The current window will be closed if there is no window below)

3 Tab Management

ShortcutAction
t uCreate a new tab
t nGo one tab left
t iGo One tab right
t m nMove tab left
t m iMove tab right

4 Terminal Keyboard Shortcuts

ShortcutAction
Ctrl nEscape from terminal input mode

Plugins Keybindings (Screenshots/GIF provided!)

AutoCompletion

COC (AutoCompletion)

ShortcutAction
Space yGet yank history list
gdGo to definition
grList references
giList implementation
gyGo to type definition
Space r nRename a variable
Gif

coc-snippets

ShortcutAction
Ctrl eExpand a snippet
Ctrl n(in snippet) Previous Cursor position in snippet
Ctrl e(in snippet) Next Cursor position in snippet

GIF Demo

File Navigation

coc-explorer (file browser)

ShortcutAction
ttOpen file browser
?show help (in explorer)
Png

rnvimr - file browser

  • Make sure you have ranger installed

Press R to open Ranger (file selector)

And Within rnvimr (ranger), you can:

ShortcutAction
Ctrl tOpen the file in a new tab
Ctrl xSplit up and down with the file
Ctrl vSplit left and right with the file
Gif

FZF - the fuzzy file finder

ShortcutAction
Ctrl pFZF Files
Ctrl uMove up 1 item
Ctrl eMove down 1 item
Ctrl wFZF Buffers
Ctrl fFZF Files' Content
Ctrl hFZF Recent Files
Ctrl tFZF Tags
Gif

xtabline (the fancy tab line)

ShortcutWhat it creates
toCycle tab mode
\pShow current path
Gif

Text Editing Plugins

vim-table-mode

ShortcutAction
SPACE t mToggle table mode
SPACE t rRealign table

See :help table-mode.txt for more.

Undotree

ShortcutAction
Shift + LOpen Undotree
uNewer Version
eOlder Version
Png

vim-visual-multi

ShortcutAction
Ctrl+kSelect next key (multiple cursors)
qDeselect the current keys (multiple cursors)
-Select the previous key
=Select the next key
EscQuit mutiple cursors
Gif Gif Gif Gif

vim-surround

To add surround (string -> "string"):

string

press: yskw':

'string'

To change surround

'string'

press: cs'":

"string"
Gif

vim-subversive

New operator: s:

You can execute s<motion> to substitute the text object provided by the motion with the contents of the default register (or an explicit register if provided). For example, you could execute skw to replace the current word under the cursor with the current yank, or skp to replace the paragraph, etc.

vim-easy-align

Press ga + symbol in normal or visual mode to align text based on symbol

Gif

AutoFormat

Press \ f to format code

vim-markdown-toc (generate table of contents for markdown files)

In markdown files, type :Gen then tab, you'll see your options.

Gif

Vista.vim

Press T to toggle function and variable list

Gif

Find and Replace

Far.vim - find and replace

Press SPACE f r to search in cwd.

Gif

vim-gitgutter

ShortcutAction
HShow git hunk at current line
SPACE g -Go to previous git hunk
SPACE g +Go to next git hunk
SPACE g fFold everything except hunks

fzf-gitignore

Press Space g i to create a .gitignore file

Png Png

Others

vim-calendar

ShortcutAction
\ \Show clock
\ cShow calendar
Png

Goyo - Work without distraction

Press g y to toggle Goyo

Png

suda.vim

Forgot to sudo vim ...? Just do :sudowrite or :sw

coc-translator

Press ts to translate word under cursor.

Png

Custom Snippets

Markdown

ShortcutWhat it creates
,n---
,bBold text
,ssliced text
,iitalic text
,dcode block
,cbig block of code
,m- [ ] check mark
,ppicture
,alink
,1# H1
,2## H2
,3### H3
,4#### H4
,l--------

,f to go to the next <++> (placeholder)

,w to go to the next <++> (placeholder) and then press Enter for you

Some Weird Stuff

Press tx and enter your text

tx Hello<Enter>

 _   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/

Customized Vertical Cursor Movement

This NeoVim configuration includes a customized vertical cursor movement tailored for Colemak users. It can be located in cursor.vim, and it serves as an alternative to the "number + up/down" key combination.

In order to move the cursor up x lines, press the [ key, and treat the middle row of the Colemak keyboard layout ("arstdhneio") as number 1 to 0. Press the numbers that you'd like your cursor to move (x) and press the space bar.

To move the cursor down, press the ' key instead of the [ key, and the rest would be the same.

Example:

ShortcutAction
[ a o o SPACEMove the cursor up 100 lines
' a r s SPACEMove the cursor down 123 lines
[ d o SPACEMove the cursor up 50 lines

Note: As of now, you may only move vertically up to 199 lines with this key configuration!

coc
colemak
config
language-server-protocol
neovim
nvim
nvimrc
vim
vimrc

Project health

Overall

1.8/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Significant stargazers

CharlesChen0823

18 followers · starred May 2022

Jost Alemann

25 followers · starred Nov 2025

Yuchen Liang

50 followers · starred Apr 2022

Valentyn Kit

23 followers · starred Oct 2025