Last active
October 25, 2024 10:30
-
-
Save anhdiepmmk/a7c82a3610b66049fda149357932876e to your computer and use it in GitHub Desktop.
my configuration vimrc for intellij
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let mapleader = " " | |
set relativenumber number | |
set surround | |
set ignorecase | |
set scrolloff=999 | |
set highlightedyank | |
let g:highlightedyank_highlight_color = "rgba(160, 160, 160, 155)" | |
let g:highlightedyank_highlight_duration = "500" | |
nnoremap J 5jzz | |
nnoremap K 5kzz | |
nnoremap H ^ | |
nnoremap L $ | |
vnoremap > >gv | |
vnoremap < <gv | |
vnoremap <Tab> >gv | |
vnoremap <S-Tab> <gv | |
" ESC | |
noremap <ESC> <ESC>:noh<CR> | |
" Keep cursor centered vertically | |
noremap j jzz | |
noremap k kzz | |
noremap } }zz | |
noremap { {zz | |
noremap <C-D> <C-D>zz | |
noremap <C-U> <C-U>zz | |
" Registers | |
noremap <leader>rl :registers<CR> | |
noremap <leader>rc "+ | |
noremap <leader>rq "q | |
noremap <leader>rw "w | |
noremap <leader>re "e | |
noremap <leader>rr "r | |
noremap <leader>rt "t | |
noremap <leader>ry "y | |
" Buffers | |
nnoremap <leader>bl :buffers<CR> | |
nnoremap <leader>bd :bdelete<CR> | |
nnoremap <leader>bc :%bdelete<CR> | |
nnoremap <leader>bn :bnext<CR> | |
nnoremap <leader>bp :bprevious<CR> | |
nnoremap <leader>be :blast<CR> | |
nnoremap <leader>bb :bfirst<CR> | |
vnoremap J :action MoveLineDown<CR> | |
vnoremap K :action MoveLineUp<CR> | |
"vnoremap J :m '<-2<CR>gv=gv | |
"vnoremap K :m '>+1<CR>gv=gv | |
"" Don't use arrow keys | |
map <up> <nop> | |
map <down> <nop> | |
map <left> <nop> | |
map <right> <nop> | |
vnoremap y ygv<ESC> | |
" Copy to clipboard | |
vnoremap Y "+ygv<ESC> | |
noremap P "+p<ESC> | |
"set sneak | |
"set ignorecase | |
"map <f> <Plug>(sneak-s) | |
"map <F> <Plug>(sneak-s) | |
"nmap <.> <Plug>(sneak-s) | |
"omap <.> <Plug>(sneak-k) | |
"xmap <.> <Plug>(sneak-s) | |
set easymotion | |
"" -- Suggested options -- | |
" Show a few lines of context around the cursor. Note that this makes the | |
" text scroll if you mouse-click near the start or end of the window. | |
set scrolloff=5 | |
" Do incremental searching. | |
set incsearch | |
set hlsearch | |
" Map <C-L> (redraw screen) to also turn off search highlighting until the | |
" next search | |
nnoremap <C-L> :nohl<CR><C-L> | |
" Don't use Ex mode, use Q for formatting. | |
map Q gq | |
"map y y`] | |
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t | |
"" Map \r to the Reformat Code action | |
"map \r <Action>(ReformatCode) | |
"" Map <leader>d to start debug | |
"map <leader>d <Action>(Debug) | |
"" Map \b to toggle the breakpoint on the current line | |
"map \b <Action>(ToggleLineBreakpoint) | |
" Find more examples here: https://jb.gg/share-ideavimrc |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Change tmux prefix | |
unbind C-b | |
set -g prefix C-x | |
# Start windows and panes at 1, not 0 | |
set -g base-index 1 | |
setw -g pane-base-index 1 | |
# Increase time for ctrl + b q | |
set -g display-panes-time 4000 | |
# Increase history limit | |
set-option -g history-limit 5000 | |
# Enable mouse usage | |
set-option -g mouse on | |
# Use vim keybindings in copy mode | |
setw -g mode-keys vi | |
# Setup 'v' to begin selection as in Vim | |
unbind -T copy-mode-vi 'v' | |
unbind -T copy-mode-vi 'y' | |
unbind -T copy-mode-vi MouseDragEnd1Pane | |
unbind -T copy-mode-vi Enter #this is the default binding for copy (but not to system clipboard) | |
bind -T copy-mode-vi 'v' send-keys -X begin-selection | |
bind -T copy-mode-vi 'y' send-keys -X copy-pipe-no-clear 'xclip -in -selection clipboard' | |
bind -T copy-mode-vi Enter send-keys -X copy-pipe-no-clear 'xclip -in -selection clipboard' | |
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-no-clear 'xclip -in -selection clipboard' | |
# Double LMB Select & Copy (Word) | |
bind-key -T copy-mode-vi DoubleClick1Pane \ | |
select-pane \; \ | |
send-keys -X select-word-no-clear \; \ | |
send-keys -X copy-pipe-no-clear "xclip -in -sel clipboard" | |
bind-key -n DoubleClick1Pane \ | |
select-pane \; \ | |
copy-mode -M \; \ | |
send-keys -X select-word \; \ | |
send-keys -X copy-pipe-no-clear "xclip -in -sel clipboard" | |
# Triple LMB Select & Copy (Line) | |
bind-key -T copy-mode-vi TripleClick1Pane \ | |
select-pane \; \ | |
send-keys -X select-line \; \ | |
send-keys -X copy-pipe-no-clear "xclip -in -sel clipboard" | |
bind-key -n TripleClick1Pane \ | |
select-pane \; \ | |
copy-mode -M \; \ | |
send-keys -X select-line \; \ | |
send-keys -X copy-pipe-no-clear "xclip -in -sel clipboard" | |
set -g default-terminal "screen-256color" | |
set -g pane-border-style fg=white | |
set -g pane-active-border-style "bg=default fg=colour154" | |
# Navigate bettwen panes using hjkl | |
bind h select-pane -L | |
bind j select-pane -D | |
bind k select-pane -U | |
bind l select-pane -R | |
# Resize panes | |
bind -r H resize-pane -L 5 | |
bind -r J resize-pane -D 5 | |
bind -r K resize-pane -U 5 | |
bind -r L resize-pane -R 5 | |
set -g pane-border-status top | |
set -g pane-border-format "#{pane_index} #{pane_current_command}" | |
# status bar | |
set -g status on | |
set -g status-interval 1 | |
set -g status-justify centre | |
set -g status-keys vi | |
set -g status-position bottom | |
set -g status-bg colour235 | |
#setw -g window-status-activity bg=colour235 | |
#setw -g window-status-activity fg=colour154 | |
#setw -g window-status-separator '' | |
set -g status-left "#[fg=colour232,bg=colour154] #S #[fg=colour154,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #W #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] #(whoami) #(uptime | cut -f 4-5 -d ' ' | cut -f 1 -d ',') #[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]" | |
set -g status-right "#[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] %r %a %Y #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #H #[fg=colour154,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour232,bg=colour154] " | |
setw -g window-status-format "#[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]#[default] #I #W #[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]" | |
setw -g window-status-current-format "#[fg=colour235,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #I #W #F #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Author: anhdiepmmk | |
-- TODO: dashboard | |
-- TODO: lsp keymap (gf, gd, gr...) | |
-- TODO: format code with null-ls | |
-- TODO: git integration | |
-- TODO: refactor, break init.lua to pieces | |
-- remap leader key to space | |
vim.g.mapleader = ' ' | |
vim.g.maplocalleader = ' ' | |
-- increment timout for leader key | |
vim.o.timeoutlen = 10000 | |
-- mouse support | |
vim.o.mouse = 'a' | |
-- cursor | |
vim.o.cursorline = true | |
-- auto write and read | |
vim.o.autowrite = true | |
vim.o.autoread = true | |
-- using relative number | |
vim.o.number = true | |
vim.o.relativenumber = true | |
-- indent | |
vim.o.tabstop = 2 | |
vim.o.shiftwidth = 2 | |
vim.o.softtabstop = 2 | |
vim.o.expandtab = true | |
vim.o.autoindent = true | |
vim.o.smartindent = true | |
-- search | |
vim.o.ignorecase = true | |
vim.o.incsearch = true | |
vim.o.smartcase = true | |
-- keep cursor centerd | |
vim.o.scrolloff = 999 | |
-- keybindings | |
-- select all file content | |
vim.api.nvim_set_keymap('', '<C-a>', "<ESC>ggVG", { noremap = false }) | |
-- duplicate selected lines | |
vim.api.nvim_set_keymap('v', 'D', "yp", { noremap = false }) | |
-- move selected lines | |
vim.api.nvim_set_keymap('v', 'J', "<cmd>'<,'>m '>+1<CR>gv=gv", { noremap = true }) | |
vim.api.nvim_set_keymap('v', 'K', "<cmd>'<,'>m '<-2<CR>gv=gv", { noremap = true }) | |
-- keep cursor position after yank | |
vim.api.nvim_set_keymap('v', 'y', 'ygv<ESC>', { noremap = true }) | |
-- highlight on yank (no plugin needed, this is build-in function just for neovim 0.5) | |
vim.cmd[[au TextYankPost * silent! lua vim.highlight.on_yank()]] | |
-- indent selected lines and keep selection on these lines | |
vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true }) | |
vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true }) | |
vim.api.nvim_set_keymap('v', '<TAB>', '>gv', { noremap = true }) | |
vim.api.nvim_set_keymap('v', '<S-TAB>', '<gv', { noremap = true }) | |
-- clear hightlight | |
vim.api.nvim_set_keymap('n', '<M-l>', '<cmd>noh<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>l', '<cmd>noh<CR>', { noremap = true }) | |
-- esc | |
vim.api.nvim_set_keymap('i', '<ESC>', '<ESC><cmd>silent! update<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('i', 'jk', '<ESC>', { noremap = false }) | |
-- this make sure when hit esc button at normal mode data will be write to disk | |
vim.api.nvim_set_keymap('n', '<ESC>', '<ESC><cmd>silent! update | noh<CR>', { noremap = true }) | |
-- saving (actually we already remap save on press <ESC> then this will be unnecessary, | |
-- but i realized that we still need this due to some change in normal mode) | |
vim.api.nvim_set_keymap('', '<C-s>', '<cmd>wa<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>s', '<cmd>wa<CR>', { noremap = true }) | |
-- disable arrow keys | |
vim.api.nvim_set_keymap('', '<Up>', "<cmd>echoe 'please use k'<CR>", { noremap = true }) | |
vim.api.nvim_set_keymap('', '<Down>', "<cmd>echoe 'please use j'<CR>", { noremap = true }) | |
vim.api.nvim_set_keymap('', '<Left>', "<cmd>echoe 'please use h'<CR>", { noremap = true }) | |
vim.api.nvim_set_keymap('', '<Right>', "<cmd>echoe 'please use l'<CR>", { noremap = true }) | |
-- quick navigation | |
vim.api.nvim_set_keymap('n', 'J', '5j', { noremap = true }) | |
vim.api.nvim_set_keymap('n', 'K', '5k', { noremap = true }) | |
-- quick tab navigation | |
vim.api.nvim_set_keymap('n', 'L', '<cmd>bn<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', 'H', '<cmd>bp<CR>', { noremap = true }) | |
-- split | |
vim.api.nvim_set_keymap('n', '<leader>\\', '<cmd>vsplit<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>/', '<cmd>split<CR>', { noremap = true }) | |
-- registers (map y,Y = "+y, p,P = "+p) | |
vim.api.nvim_set_keymap('', 'Y', '"+y<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('', 'P', '"+p<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rl', '<cmd>registers<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rc', '"+', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rq', '"q', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rw', '"w', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>re', '"e', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rr', '"r', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>rt', '"t', { noremap = true }) | |
vim.api.nvim_set_keymap('', '<leader>ry', '"y', { noremap = true }) | |
-- buffers | |
vim.api.nvim_set_keymap('n', '<leader>bl', '<cmd>buffers<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bd', '<cmd>bdelete!<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bc', '<cmd>%bdelete!<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bn', '<cmd>bnext<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bp', '<cmd>bprevious<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>be', '<cmd>blast<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bb', '<cmd>bfirst<CR>', { noremap = true}) | |
vim.api.nvim_set_keymap('n', '<leader>bo', '<cmd>%bdelete! | e#<CR>', { noremap = true}) | |
-- tabs | |
-- resize split | |
-- navigation bettwen split | |
vim.api.nvim_set_keymap('n', '<C-j>', '<C-w>j', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<C-k>', '<C-w>k', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<C-l>', '<C-w>l', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<C-h>', '<C-w>h', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<TAB>', '<C-w>w', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<S-TAB>', '<C-w>W', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<C-q>', '<cmd>update | q<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>q', '<cmd>update | q<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<C-Q>', '<cmd>bufdo update | qa<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>Q', '<cmd>bufdo update | qa<CR>', { noremap = true }) | |
-- only display single window | |
vim.api.nvim_set_keymap('n', '<M-o>', '<cmd>wa | only<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>o', '<cmd>wa | only<CR>', { noremap = true }) | |
-- nvim tree | |
-- vim.api.nvim_set_keymap('n', '<leader>nt', '<cmd>NvimTreeToggle<CR>', { noremap = true }) | |
-- vim.api.nvim_set_keymap('n', '<leader>nr', '<cmd>NvimTreeRefresh<CR>', { noremap = true }) | |
-- vim.api.nvim_set_keymap('n', '<leader>nf', '<cmd>NvimTreeFindFile<CR>', { noremap = true }) | |
-- neo tree | |
vim.api.nvim_set_keymap('n', '<leader>nt', '<cmd>Neotree toggle<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>nf', '<cmd>Neotree focus<CR>', { noremap = true }) | |
-- telescope | |
vim.api.nvim_set_keymap('n', '<leader>tf', '<cmd>Telescope find_files<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>tg', '<cmd>Telescope live_grep<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>tb', '<cmd>Telescope buffers<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>th', '<cmd>Telescope help_tags<cr>', { noremap = true }) | |
-- packer | |
vim.api.nvim_set_keymap('n', '<leader>pc', '<cmd>PackerCompile<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>pi', '<cmd>PackerInstall<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>ps', '<cmd>PackerSync<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>pS', '<cmd>PackerStatus<CR>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>pu', '<cmd>PackerUpdate<CR>', { noremap = true }) | |
-- toggleterm | |
vim.api.nvim_set_keymap('n', '<leader>cf', '<cmd>ToggleTerm direction=float<cr>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>ch', '<cmd>ToggleTerm size=10 direction=horizontal<cr>', { noremap = true }) | |
vim.api.nvim_set_keymap('n', '<leader>cv', '<cmd>ToggleTerm size=80 direction=vertical<cr>', { noremap = true }) | |
-- plugins | |
packer = require('packer') | |
packer.startup(function(use) | |
use 'wbthomason/packer.nvim' | |
-- Movement | |
use 'easymotion/vim-easymotion' | |
-- Surround | |
use 'tpope/vim-surround' | |
-- Commentary | |
use 'tpope/vim-commentary' | |
-- Auto close pairs | |
use 'jiangmiao/auto-pairs' | |
-- Language server protocol | |
use 'neovim/nvim-lspconfig' | |
-- use 'williamboman/nvim-lsp-installer' | |
-- use { | |
-- 'kyazdani42/nvim-tree.lua', | |
-- requires = { | |
-- 'kyazdani42/nvim-web-devicons', | |
-- }, | |
-- } | |
use { | |
'akinsho/bufferline.nvim', | |
tag = "*", | |
requires = 'kyazdani42/nvim-web-devicons' | |
} | |
use { | |
'nvim-neo-tree/neo-tree.nvim', | |
branch = 'v2.x', | |
requires = { | |
'nvim-lua/plenary.nvim', | |
'kyazdani42/nvim-web-devicons', | |
'MunifTanjim/nui.nvim', | |
} | |
} | |
use { | |
'nvim-telescope/telescope.nvim', | |
requires = { {'nvim-lua/plenary.nvim'} } | |
} | |
use 'navarasu/onedark.nvim' | |
use { | |
'nvim-lualine/lualine.nvim', | |
requires = { 'kyazdani42/nvim-web-devicons', opt = true } | |
} | |
use {"akinsho/toggleterm.nvim"} | |
use { | |
'hrsh7th/nvim-cmp', | |
requires = { | |
'hrsh7th/cmp-buffer', | |
'hrsh7th/cmp-nvim-lsp', | |
-- 'quangnguyen30192/cmp-nvim-ultisnips', | |
'hrsh7th/cmp-nvim-lua', | |
'octaltree/cmp-look', | |
'hrsh7th/cmp-path', | |
'hrsh7th/cmp-calc', | |
'f3fora/cmp-spell', | |
'hrsh7th/cmp-emoji' | |
} | |
} | |
use { | |
'nvim-treesitter/nvim-treesitter', | |
run = ':TSUpdate' | |
} | |
end) | |
-- treesitter | |
require'nvim-treesitter.configs'.setup { | |
ensure_installed = { "javascript", "lua", "typescript" }, | |
sync_install = false, | |
ignore_install = {}, | |
highlight = { | |
enable = true, | |
disable = {}, | |
additional_vim_regex_highlighting = false, | |
}, | |
} | |
-- bufferline | |
vim.opt.termguicolors = true | |
require("bufferline").setup {} | |
-- nvim-tree | |
-- require'nvim-tree'.setup { | |
-- } | |
-- toggleterm | |
require('toggleterm').setup { | |
} | |
-- neotree | |
require('neo-tree').setup { | |
close_if_last_window = false | |
} | |
-- onedark | |
require('onedark').setup { | |
style = 'darker' | |
} | |
require('onedark').load() | |
-- lualine | |
require('lualine').setup { | |
options = { | |
icons_enabled = true, | |
theme = 'onedark', | |
component_separators = { left = '', right = ''}, | |
section_separators = { left = '', right = ''}, | |
disabled_filetypes = {}, | |
always_divide_middle = true, | |
globalstatus = false, | |
}, | |
sections = { | |
lualine_a = {'mode'}, | |
lualine_b = {'branch', 'diff', 'diagnostics'}, | |
lualine_c = {'filename'}, | |
lualine_x = {'encoding', 'fileformat', 'filetype'}, | |
lualine_y = {'progress'}, | |
lualine_z = {'location'} | |
}, | |
inactive_sections = { | |
lualine_a = {}, | |
lualine_b = {}, | |
lualine_c = {'filename'}, | |
lualine_x = {'location'}, | |
lualine_y = {}, | |
lualine_z = {} | |
}, | |
tabline = {}, | |
extensions = {} | |
} | |
-- cmp-nvim-lsp | |
require('cmp').setup { | |
sources = { | |
{ name = 'nvim_lsp' } | |
} | |
} | |
local capabilities = vim.lsp.protocol.make_client_capabilities() | |
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) | |
-- cmp-nvim-ultisnips | |
-- require("cmp_nvim_ultisnips").setup { | |
-- filetype_source = "treesitter", | |
-- show_snippets = "all", | |
-- documentation = function(snippet) | |
-- return snippet.description | |
-- end | |
-- } | |
-- lsp installer | |
-- local lsp_installer = require('nvim-lsp-installer') | |
-- lsp_installer.on_server_ready(function(server) | |
-- local opts = {} | |
-- server:setup(opts) | |
-- end) | |
-- lsgconfig | |
local opts = { noremap = true } | |
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts) | |
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts) | |
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts) | |
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts) | |
local on_attach = function(client, bufnr) | |
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) | |
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts) | |
end | |
local servers = { 'eslint', 'tsserver' } | |
for _, lsp in pairs(servers) do | |
require('lspconfig')[lsp].setup { | |
capabilities = capabilities, | |
on_attach = on_attach, | |
-- flags = { | |
-- debounce_text_changes = 150, | |
-- } | |
-- cmd = { | |
-- 'typescript-language-server', '--stdio' | |
-- } | |
} | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let mapleader=" " | |
set mouse=a | |
set cursorline | |
set cursorcolumn | |
set relativenumber number | |
set list | |
set listchars=tab:\¦\ | |
set tabstop=4 shiftwidth=4 expandtab | |
set hlsearch incsearch | |
set ignorecase smartcase | |
" Clear last search highlighting | |
nnoremap <C-l> :noh<CR> | |
vnoremap <Tab> >gv | |
vnoremap <S-Tab> <gv | |
vnoremap > >gv | |
vnoremap < <gv | |
vmap y ygv<Esc> | |
vnoremap K :m '<-2<CR>gv=gv | |
vnoremap J :m '>+1<CR>gv=gv | |
nnoremap <M-j> <C-w>j | |
nnoremap <M-k> <C-w>k | |
nnoremap <M-h> <C-w>h | |
nnoremap <M-l> <C-w>l | |
map <up> <nop> | |
map <down> <nop> | |
map <left> <nop> | |
map <right> <nop> | |
call plug#begin() | |
Plug 'machakann/vim-highlightedyank' | |
Plug 'preservim/nerdtree' | |
Plug 'ryanoasis/vim-devicons' | |
Plug 'Xuyuanp/nerdtree-git-plugin' | |
" Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'jiangmiao/auto-pairs' | |
Plug 'alvan/vim-closetag' | |
Plug 'tpope/vim-commentary' | |
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
Plug 'junegunn/fzf.vim' | |
Plug 'voldikss/vim-floaterm' | |
Plug 'vim-airline/vim-airline' | |
Plug 'morhetz/gruvbox' | |
Plug 'easymotion/vim-easymotion' | |
Plug 'justinmk/vim-sneak' | |
Plug 'tpope/vim-surround' | |
Plug 'michaeljsmith/vim-indent-object' | |
Plug 'tpope/vim-fugitive' | |
Plug 'wfxr/minimap.vim' | |
call plug#end() | |
let g:highlightedyank_highlight_duration = 500 | |
colorscheme gruvbox | |
" let NERDTreeMapOpenInTab='<TAB>' | |
" let NERDTreeMapOpenInTabSilent='<ENTER>' | |
" Open nerdtree automatically when start vim on a folder | |
let g:NERDTreeHijackNetrw = 1 | |
au VimEnter NERD_tree_1 enew | execute 'NERDTree '.argv()[0] | |
" Auto-open NERDTree in "EVERY" tab | |
autocmd VimEnter * NERDTree | |
autocmd BufEnter * NERDTreeMirror | |
" Close vim NERDtree on close of file | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") | |
\ && b:NERDTree.isTabTree()) | q | endif | |
nnoremap <leader>n :NERDTreeFocus<CR> | |
nnoremap <C-n> :NERDTree<CR> | |
nnoremap <C-t> :NERDTreeToggle<CR> | |
nnoremap <C-f> :NERDTreeFind<CR> | |
" Replace f with sneak | |
map f <Plug>Sneak_s | |
map F <Plug>Sneak_S | |
" Restore original s | |
map s s |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Mode letters:
n: normal only
v: visual and select
o: operator-pending
x: visual only
s: select only
i: insert
c: command-line
l: insert, command-line, regexp-search (and others. Collectively called "Lang-Arg" pseudo-mode)