mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2024-12-26 13:14:35 +00:00
Move global functions to init.lua
This commit is contained in:
parent
11baef383b
commit
e8fb4e3614
|
@ -1,7 +1,31 @@
|
||||||
|
local vim = require("vim")
|
||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
-- Define some global functions which can then be called
|
||||||
|
-- in the other required scripts
|
||||||
|
|
||||||
|
-- Load an arbitrary .vim or .lua file
|
||||||
|
function LoadFile(file_path)
|
||||||
|
local extension = file_path:match("^.+(%..+)$")
|
||||||
|
local run_cmd
|
||||||
|
if (extension == ".vim") then run_cmd = "source" else run_cmd = "luafile" end
|
||||||
|
fn.execute(run_cmd .. " " .. file_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Define a key mapping
|
||||||
|
function Keymap(mode, shortcut, command, options)
|
||||||
|
-- Assume silent, noremap unless specified otherwise
|
||||||
|
local opts = {noremap=true, silent=true}
|
||||||
|
|
||||||
|
if options then opts = vim.tbl_extend("force", opts, options) end
|
||||||
|
vim.api.nvim_set_keymap(mode, shortcut, command, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Require additional scripts which contain individual configurations
|
||||||
|
|
||||||
require "base"
|
require "base"
|
||||||
require "theme"
|
require "theme"
|
||||||
require "mappings"
|
require "mappings"
|
||||||
require "abbreviations"
|
require "abbreviations"
|
||||||
require "autocmd"
|
require "autocmd"
|
||||||
require "plugins"
|
require "plugins"
|
||||||
|
|
||||||
|
|
|
@ -1,113 +1,85 @@
|
||||||
local vim = require("vim")
|
local vim = require("vim")
|
||||||
|
local g = vim.g
|
||||||
|
|
||||||
-- Make these function definitions global as they could be reused
|
|
||||||
-- in plugin specific scripts or in other places.
|
|
||||||
function keymap(mode, shortcut, command, options)
|
|
||||||
-- Assume silent, noremap unless specified otherwise
|
|
||||||
local opts = {noremap=true, silent=true}
|
|
||||||
if options then opts = vim.tbl_extend("force", opts, options) end
|
|
||||||
-- Perform the actual remap
|
|
||||||
vim.api.nvim_set_keymap(mode, shortcut, command, opts)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- This is a bit silly, but I don't like passing the mode argument
|
-- This is a bit silly, but I don't like passing the mode argument
|
||||||
-- to every keymap definition and this makes things a lot easier
|
g.mapleader = "\\"
|
||||||
-- and a bit more vimscript-like
|
|
||||||
function nmap(shortcut, command, options)
|
|
||||||
keymap("n", shortcut, command, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
function imap(shortcut, command, options)
|
|
||||||
keymap("i", shortcut, command, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
function vmap(shortcut, command, options)
|
|
||||||
keymap("v", shortcut, command, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
function tmap(shortcut, command, options)
|
|
||||||
keymap("t", shortcut, command, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
function xmap(shortcut, command, options)
|
|
||||||
keymap("x", shortcut, command, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Unmap arrow keys in normal mode to remove bad habits
|
-- Unmap arrow keys in normal mode to remove bad habits
|
||||||
nmap("<Down>", "<nop>")
|
Keymap("n", "<Down>", "<nop>")
|
||||||
nmap("<Left>", "<nop>")
|
Keymap("n", "<Left>", "<nop>")
|
||||||
nmap("<Right>", "<nop>")
|
Keymap("n", "<Right>", "<nop>")
|
||||||
nmap("<Up>", "<nop>")
|
Keymap("n", "<Up>", "<nop>")
|
||||||
|
|
||||||
-- Tab navigation
|
-- Tab navigation
|
||||||
nmap("<Tab>", "gt")
|
Keymap("n", "<Tab>", "gt")
|
||||||
nmap("<S-Tab>", "gT")
|
Keymap("n", "<S-Tab>", "gT")
|
||||||
nmap("<A-t>", ":tabnew<CR>")
|
Keymap("n", "<A-t>", ":tabnew<CR>")
|
||||||
nmap("<A-2>", ":tabmove +<CR>")
|
Keymap("n", "<A-2>", ":tabmove +<CR>")
|
||||||
nmap("<A-1>", ":tabmove -<CR>")
|
Keymap("n", "<A-1>", ":tabmove -<CR>")
|
||||||
nmap("<A-p>", ":tabp<CR>")
|
Keymap("n", "<A-p>", ":tabp<CR>")
|
||||||
nmap("<A-n>", ":tabn<CR>")
|
Keymap("n", "<A-n>", ":tabn<CR>")
|
||||||
|
|
||||||
-- Set splits navigation to just ALT + hjkl
|
-- Set splits navigation to just ALT + hjkl
|
||||||
nmap("<C-h>", "<C-w>h")
|
Keymap("n", "<C-h>", "<C-w>h")
|
||||||
nmap("<C-j>", "<C-w>j")
|
Keymap("n", "<C-j>", "<C-w>j")
|
||||||
nmap("<C-k>", "<C-w>k")
|
Keymap("n", "<C-k>", "<C-w>k")
|
||||||
nmap("<C-l>", "<C-w>l")
|
Keymap("n", "<C-l>", "<C-w>l")
|
||||||
|
|
||||||
-- Split size adjusting
|
-- Split size adjusting
|
||||||
nmap("<C-Right>", ":verical resize +3<CR>")
|
Keymap("n", "<C-Left>", ":vertical resize +3<CR>")
|
||||||
nmap("<C-Left>", ":vertical resize -3<CR>")
|
Keymap("n", "<C-Right>", ":vertical resize -3<CR>")
|
||||||
nmap("<C-Up>", ":resize +3<CR>")
|
Keymap("n", "<C-Up>", ":resize +3<CR>")
|
||||||
nmap("<C-Down>", ":resize -3<CR>")
|
Keymap("n", "<C-Down>", ":resize -3<CR>")
|
||||||
|
|
||||||
-- Define some common shortcuts
|
-- Define some common shortcuts
|
||||||
nmap("<C-s>", ":w<CR>")
|
Keymap("n", "<C-s>", ":w<CR>")
|
||||||
imap("<C-s>", "<Esc>:w<CR>i")
|
Keymap("i", "<C-s>", "<Esc>:w<CR>i")
|
||||||
nmap("<C-z>", ":undo<CR>")
|
Keymap("n", "<C-z>", ":undo<CR>")
|
||||||
nmap("<C-y>", ":redo<CR>")
|
Keymap("n", "<C-y>", ":redo<CR>")
|
||||||
|
|
||||||
-- Terminal
|
-- Terminal
|
||||||
nmap("<C-t>", ":split term://zsh<CR>:resize -7<CR>i")
|
Keymap("n", "<C-t>", ":split term://zsh<CR>:resize -7<CR>i")
|
||||||
nmap("<C-A-t>", ":vnew term://zsh<CR>i")
|
Keymap("n", "<C-A-t>", ":vnew term://zsh<CR>i")
|
||||||
nmap("<A-T>", ":tabnew term://zsh<CR>i")
|
Keymap("n", "<A-T>", ":tabnew term://zsh<CR>i")
|
||||||
tmap("<Esc>", "<C-\\><C-n>")
|
Keymap("t", "<Esc>", "<C-\\><C-n>")
|
||||||
|
|
||||||
-- Use space for folding/unfolding sections
|
-- Use space for folding/unfolding sections
|
||||||
nmap("<space>", "za")
|
Keymap("n", "<space>", "za")
|
||||||
vmap("<space>", "zf")
|
Keymap("v", "<space>", "zf")
|
||||||
|
|
||||||
-- Use shift to quickly move 10 lines up/down
|
-- Use shift to quickly move 10 lines up/down
|
||||||
nmap("K", "10k")
|
Keymap("n", "K", "10k")
|
||||||
nmap("J", "10j")
|
Keymap("n", "J", "10j")
|
||||||
|
|
||||||
-- Enable/Disable auto commenting
|
-- Enable/Disable auto commenting
|
||||||
nmap("<leader>c", ":setlocal formatoptions-=cro<CR>")
|
Keymap("n", "<leader>c", ":setlocal formatoptions-=cro<CR>")
|
||||||
nmap("<leader>C", ":setlocal formatoptions+=cro<CR>")
|
Keymap("n", "<leader>C", ":setlocal formatoptions+=cro<CR>")
|
||||||
|
|
||||||
-- Don't leave visual mode after indenting
|
-- Don't leave visual mode after indenting
|
||||||
vmap("<", "<gv")
|
Keymap("v", "<", "<gv")
|
||||||
vmap(">", ">gv")
|
Keymap("v", ">", ">gv")
|
||||||
|
|
||||||
-- System clipboard copying
|
-- System clipboard copying
|
||||||
vmap("<C-c>", '"+y')
|
Keymap("v", "<C-c>", '"+y')
|
||||||
|
|
||||||
-- Alias replace all
|
-- Alias replace all
|
||||||
nmap("<A-s>", ":%s//gI<Left><Left><Left>", {silent=false})
|
Keymap("n", "<A-s>", ":%s//gI<Left><Left><Left>", {silent=false})
|
||||||
|
|
||||||
-- Stop search highlight with Esc
|
-- Stop search highlight with Esc
|
||||||
nmap("<esc>", ":noh<CR>")
|
Keymap("n", "<esc>", ":noh<CR>")
|
||||||
|
|
||||||
-- Start spell-check
|
-- Start spell-check
|
||||||
nmap("<leader>s", ":setlocal spell! spelllang=en_us<CR>")
|
Keymap("n", "<leader>s", ":setlocal spell! spelllang=en_us<CR>")
|
||||||
|
|
||||||
-- Run shell check
|
-- Run shell check
|
||||||
nmap("<leader>p", ":!shellckeck %<CR>")
|
Keymap("n", "<leader>p", ":!shellckeck %<CR>")
|
||||||
|
|
||||||
-- Compile opened file (using custom script)
|
-- Compile opened file (using custom script)
|
||||||
nmap("<A-c>", ":w | !comp <c-r>%<CR>")
|
Keymap("n", "<A-c>", ":w | !comp <c-r>%<CR>")
|
||||||
|
|
||||||
-- Close all opened buffers
|
-- Close all opened buffers
|
||||||
nmap("<leader>Q", ":bufdo bdelete<CR>")
|
Keymap("n", "<leader>Q", ":bufdo bdelete<CR>")
|
||||||
|
|
||||||
-- Don't set the incredibely annoying mappings that trigger dynamic SQL
|
-- Don't set the incredibely annoying mappings that trigger dynamic SQL
|
||||||
-- completion with dbext and keeps on freezing vim whenever pressed with
|
-- completion with dbext and keeps on freezing vim whenever pressed with
|
||||||
|
|
|
@ -3,7 +3,7 @@ local cmd = vim.cmd
|
||||||
|
|
||||||
cmd[[Plug 'tpope/vim-commentary']]
|
cmd[[Plug 'tpope/vim-commentary']]
|
||||||
|
|
||||||
nmap("<A-/>", ":Commentary<CR>")
|
Keymap("n", "<A-/>", ":Commentary<CR>")
|
||||||
vmap("<A-/>", ":Commentary<CR>")
|
Keymap("v", "<A-/>", ":Commentary<CR>")
|
||||||
|
|
||||||
cmd[[autocmd FileType apache setlocal commentstring=#\ %s]]
|
cmd[[autocmd FileType apache setlocal commentstring=#\ %s]]
|
||||||
|
|
|
@ -11,7 +11,7 @@ Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
|
||||||
|
|
||||||
-- Implement manual NERDTreeToggle, but use NERDTreeFind for openning.
|
-- Implement manual NERDTreeToggle, but use NERDTreeFind for openning.
|
||||||
-- This makes NERDTree open with the current file pre-selected
|
-- This makes NERDTree open with the current file pre-selected
|
||||||
nmap("<C-n>", "g:NERDTree.IsOpen() ? ':NERDTreeClose<CR>' : @% == '' ? ':NERDTree<CR>' : ':NERDTreeFind<CR>'", {expr=true})
|
Keymap("n", "<C-n>", "g:NERDTree.IsOpen() ? ':NERDTreeClose<CR>' : @% == '' ? ':NERDTree<CR>' : ':NERDTreeFind<CR>'", {expr=true})
|
||||||
|
|
||||||
g.NERDTreeShowHidden = 1
|
g.NERDTreeShowHidden = 1
|
||||||
g.NERDTreeMinimalUI = 1
|
g.NERDTreeMinimalUI = 1
|
||||||
|
|
|
@ -19,18 +19,10 @@ if fn.empty(fn.glob(plug_install_path)) > 0 then
|
||||||
cmd[[autocmd VimEnter * UpdateRemotePlugins]]
|
cmd[[autocmd VimEnter * UpdateRemotePlugins]]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load an arbitrary .vim or .lua file
|
|
||||||
local function load_file(file_path)
|
|
||||||
local extension = file_path:match("^.+(%..+)$")
|
|
||||||
local run_cmd
|
|
||||||
if (extension == ".vim") then run_cmd = "source" else run_cmd = "luafile" end
|
|
||||||
fn.execute(run_cmd .. " " .. file_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Load a file containing Plug call(s) and plugin settings
|
-- Load a file containing Plug call(s) and plugin settings
|
||||||
local function load_plugin_file(plugin_file)
|
local function load_plugin_file(plugin_file)
|
||||||
local plugin_path = plugin_files_dir .. "/" .. plugin_file
|
local plugin_path = plugin_files_dir .. "/" .. plugin_file
|
||||||
load_file(plugin_path)
|
LoadFile(plugin_path)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Load a single given plugin using a Plug call
|
-- Load a single given plugin using a Plug call
|
||||||
|
|
Loading…
Reference in a new issue