[neovim] Give key bindings a little love; add GUI bindings for neovide
- Clean up the init interface. Move all the init methods into a single init_all() call. - Add two keybindings for <M-j> and <M-k> to move by soft-wrapped lines in Normal mode - Add a few key bindings for the usual shortcuts for cut/copy/paste when in GUI mode. In vim, D is the character that represents the Super/Apple key. So, <D-x>, <D-c>, and <D-v> now do what you'd expect.
This commit is contained in:
		
							parent
							
								
									31215aadbf
								
							
						
					
					
						commit
						534d9a102b
					
				
					 3 changed files with 38 additions and 9 deletions
				
			
		|  | @ -56,10 +56,7 @@ require 'treesitter' | |||
| require 'lsp' | ||||
| 
 | ||||
| local keys = require 'keys' | ||||
| keys.init_key_opts() | ||||
| keys.init_window_key_mappings() | ||||
| keys.init_diagnostic_key_mappings() | ||||
| keys.init_telescope_mappings() | ||||
| keys.init() | ||||
| 
 | ||||
| local gui = require 'gui' | ||||
| gui.init() | ||||
|  |  | |||
|  | @ -5,10 +5,13 @@ local function _init_neovide() | |||
|         return | ||||
|     end | ||||
| 
 | ||||
|     -- No use for these animations. | ||||
|     vim.g.neovide_cursor_animation_length = 0 | ||||
|     vim.g.neovide_position_animation_length = 0 | ||||
|     vim.g.neovide_scroll_animation_length = 0 | ||||
| 
 | ||||
|     vim.g.neovide_input_macos_option_key_is_meta = "both" | ||||
| 
 | ||||
|     vim.cmd [[ colorscheme lunaperche ]] | ||||
| end | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,10 +2,33 @@ | |||
| 
 | ||||
| local map = vim.keymap.set | ||||
| 
 | ||||
| local function init_key_opts() | ||||
| local function init_key_options() | ||||
|     vim.g.mapleader = "," | ||||
| end | ||||
| 
 | ||||
| local function navigation_mappings() | ||||
|     local options = { noremap = true } | ||||
| 
 | ||||
|     -- Navigate by soft-wrapped lines using Alt/Option/Meta + jk | ||||
|     map({'n', 'v'}, '<M-k>', 'gk', options) | ||||
|     map({'n', 'v'}, '<M-j>', 'gj', options) | ||||
| end | ||||
| 
 | ||||
| local function clipboard_mappings() | ||||
|     if not vim.fn.has('gui_running') then | ||||
|         return | ||||
|     end | ||||
| 
 | ||||
|     local options = { noremap = true } | ||||
| 
 | ||||
|     -- Copy to the system clipboard | ||||
|     map('v', '<D-c>', '"+y', options) | ||||
|     -- Cut to the system clipboard | ||||
|     map('v', '<D-x>', '"+x', options) | ||||
|     -- Paste from the system clipboard | ||||
|     map({'i', 'v'}, '<D-v>', '"+p', options) | ||||
| end | ||||
| 
 | ||||
| local function window_key_mappings() | ||||
|     local options = { silent = true } | ||||
| 
 | ||||
|  | @ -70,10 +93,16 @@ local function telescope_mappings() | |||
|     map('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' }) | ||||
| end | ||||
| 
 | ||||
| local function init_all_global_keybindings() | ||||
|     init_key_options() | ||||
|     clipboard_mappings() | ||||
|     window_key_mappings() | ||||
|     navigation_mappings() | ||||
|     diagnostic_mappings() | ||||
|     telescope_mappings() | ||||
| end | ||||
| 
 | ||||
| return { | ||||
|     init_key_opts = init_key_opts, | ||||
|     init_window_key_mappings = window_key_mappings, | ||||
|     init_diagnostic_key_mappings = diagnostic_mappings, | ||||
|     init = init_all_global_keybindings, | ||||
|     init_lsp_key_mappings = local_lsp_mappings, | ||||
|     init_telescope_mappings = telescope_mappings, | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue