Skip to content

Commit dc1cbe8

Browse files
committed
First config attempt
- some LazyVim style keymaps - Mason using local registry (erlang-ls v1.1.0 not yet merged to registry, after that it's not needed) - erlang-ls LSP - LazyGit plugin - Telescope file_browser plugin - enable Nerd fonts - listchars for leading space
1 parent 7201dc4 commit dc1cbe8

File tree

3 files changed

+125
-12
lines changed

3 files changed

+125
-12
lines changed

init.lua

Lines changed: 96 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
9191
vim.g.maplocalleader = ' '
9292

9393
-- Set to true if you have a Nerd Font installed and selected in the terminal
94-
vim.g.have_nerd_font = false
94+
vim.g.have_nerd_font = true
9595

9696
-- [[ Setting options ]]
9797
-- See `:help vim.opt`
@@ -146,7 +146,7 @@ vim.opt.splitbelow = true
146146
-- See `:help 'list'`
147147
-- and `:help 'listchars'`
148148
vim.opt.list = true
149-
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
149+
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '', lead = '.' }
150150

151151
-- Preview substitutions live, as you type!
152152
vim.opt.inccommand = 'split'
@@ -189,14 +189,49 @@ vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left wind
189189
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
190190
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
191191
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
192+
--
193+
-- Resize window using <ctrl><shift> arrow keys
194+
vim.keymap.set('n', '<C-S-Up>', '<cmd>resize +2<cr>', { desc = 'Increase Window Height' })
195+
vim.keymap.set('n', '<C-S-Down>', '<cmd>resize -2<cr>', { desc = 'Decrease Window Height' })
196+
vim.keymap.set('n', '<C-S-Left>', '<cmd>vertical resize -2<cr>', { desc = 'Decrease Window Width' })
197+
vim.keymap.set('n', '<C-S-Right>', '<cmd>vertical resize +2<cr>', { desc = 'Increase Window Width' })
198+
199+
-- Move Lines
200+
vim.keymap.set('n', '<A-j>', "<cmd>execute 'move .+' . v:count1<cr>==", { desc = 'Move Down' })
201+
vim.keymap.set('n', '<A-k>', "<cmd>execute 'move .-' . (v:count1 + 1)<cr>==", { desc = 'Move Up' })
202+
vim.keymap.set('i', '<A-j>', '<esc><cmd>m .+1<cr>==gi', { desc = 'Move Down' })
203+
vim.keymap.set('i', '<A-k>', '<esc><cmd>m .-2<cr>==gi', { desc = 'Move Up' })
204+
vim.keymap.set('v', '<A-j>', ":<C-u>execute \"'<,'>move '>+\" . v:count1<cr>gv=gv", { desc = 'Move Down' })
205+
vim.keymap.set('v', '<A-k>', ":<C-u>execute \"'<,'>move '<-\" . (v:count1 + 1)<cr>gv=gv", { desc = 'Move Up' })
206+
--
207+
-- buffers
208+
vim.keymap.set('n', '<S-h>', '<cmd>bprevious<cr>', { desc = 'Prev Buffer' })
209+
vim.keymap.set('n', '<S-l>', '<cmd>bnext<cr>', { desc = 'Next Buffer' })
210+
vim.keymap.set('n', '[b', '<cmd>bprevious<cr>', { desc = 'Prev Buffer' })
211+
vim.keymap.set('n', ']b', '<cmd>bnext<cr>', { desc = 'Next Buffer' })
212+
vim.keymap.set('n', '<leader>bb', '<cmd>e #<cr>', { desc = 'Switch to Other Buffer' })
213+
--vim.keymap.set('n', '<leader>`', '<cmd>e #<cr>', { desc = 'Switch to Other Buffer' })
214+
vim.keymap.set('n', '<leader>bd', '<cmd>bdelete<cr>', { desc = 'Delete Buffer' })
215+
--
216+
-- Add undo break-points
217+
vim.keymap.set('i', ',', ',<c-g>u')
218+
vim.keymap.set('i', '.', '.<c-g>u')
219+
vim.keymap.set('i', ';', ';<c-g>u')
220+
221+
-- better indenting: stay in visual mode after indent
222+
vim.keymap.set('v', '<', '<gv')
223+
vim.keymap.set('v', '>', '>gv')
192224

193-
-- [[ Basic Autocommands ]]
194-
-- See `:help lua-guide-autocommands`
225+
-- save file
226+
vim.keymap.set({ 'i', 'x', 'n', 's' }, '<c-s>', '<cmd>w<cr><esc>', { desc = 'save file' })
195227

196-
-- Highlight when yanking (copying) text
197-
-- Try it with `yap` in normal mode
198-
-- See `:help vim.highlight.on_yank()`
199-
vim.api.nvim_create_autocmd('TextYankPost', {
228+
-- [[ basic autocommands ]]
229+
-- see `:help lua-guide-autocommands`
230+
231+
-- highlight when yanking (copying) text
232+
-- try it with `yap` in normal mode
233+
-- see `:help vim.highlight.on_yank()`
234+
vim.api.nvim_create_autocmd('textyankpost', {
200235
desc = 'Highlight when yanking (copying) text',
201236
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
202237
callback = function()
@@ -332,6 +367,19 @@ require('lazy').setup({
332367
--
333368
-- Use the `dependencies` key to specify the dependencies of a particular plugin
334369

370+
{
371+
'nvim-telescope/telescope-file-browser.nvim',
372+
dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' },
373+
-- keys = {
374+
-- {
375+
-- '<leader>e',
376+
-- ':Telescope file_browser path=%:p:h select_buffer=true follow_symlinks=true no_ignore=true<CR>',
377+
-- desc = 'Browse current file',
378+
-- },
379+
-- { '<leader>e', '<leader>e', desc = 'Browse Files', remap = true },
380+
-- },
381+
},
382+
335383
{ -- Fuzzy Finder (files, lsp, etc)
336384
'nvim-telescope/telescope.nvim',
337385
event = 'VimEnter',
@@ -389,6 +437,20 @@ require('lazy').setup({
389437
-- },
390438
-- pickers = {}
391439
extensions = {
440+
file_browser = {
441+
-- theme = "ivy",
442+
hijack_netrw = true,
443+
-- mappings = {
444+
-- ["i"] = {
445+
-- -- your custom insert mode mappings
446+
-- },
447+
-- ["n"] = {
448+
-- -- your custom normal mode mappings
449+
-- },
450+
-- },
451+
display_stat = false,
452+
-- display_stat = { date = false, size = true, mode = false },
453+
},
392454
['ui-select'] = {
393455
require('telescope.themes').get_dropdown(),
394456
},
@@ -398,19 +460,29 @@ require('lazy').setup({
398460
-- Enable Telescope extensions if they are installed
399461
pcall(require('telescope').load_extension, 'fzf')
400462
pcall(require('telescope').load_extension, 'ui-select')
463+
pcall(require('telescope').load_extension, 'file_browser')
401464

402465
-- See `:help telescope.builtin`
403466
local builtin = require 'telescope.builtin'
404467
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
405468
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
406-
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
469+
-- vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
470+
vim.keymap.set('n', '<leader><leader>', builtin.find_files, { desc = '[S]earch [F]iles' })
407471
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
408472
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
409473
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
410474
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
411475
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
412476
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
413-
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
477+
-- vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
478+
vim.keymap.set('n', '<leader>b', builtin.buffers, { desc = '[B] Find existing [B]uffers' })
479+
480+
vim.keymap.set(
481+
'n',
482+
'<leader>e',
483+
':Telescope file_browser path=%:p:h select_buffer=true follow_symlinks=true no_ignore=true<CR>',
484+
{ desc = '[S]earch File [E]ditor' }
485+
)
414486

415487
-- Slightly advanced example of overriding default behavior and theme
416488
vim.keymap.set('n', '<leader>/', function()
@@ -632,6 +704,14 @@ require('lazy').setup({
632704
},
633705
},
634706
},
707+
erlangls = {
708+
-- cmd = { '/Users/lasiva/bin/erlang_ls' },
709+
root_dir = function(fname)
710+
local root_pattern = require('lspconfig').util.root_pattern 'erlang_ls.config'(fname)
711+
return root_pattern
712+
end,
713+
},
714+
sqlls = {},
635715
}
636716

637717
-- Ensure the servers and tools above are installed
@@ -640,7 +720,11 @@ require('lazy').setup({
640720
-- :Mason
641721
--
642722
-- You can press `g?` for help in this menu.
643-
require('mason').setup()
723+
require('mason').setup {
724+
registries = {
725+
'file:/Users/lasiva/Documents/priv/mason-registry',
726+
},
727+
}
644728

645729
-- You can add other tools here that you want Mason to install
646730
-- for you, so that they are available from within Neovim.
@@ -929,7 +1013,7 @@ require('lazy').setup({
9291013
--
9301014
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
9311015
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
932-
-- { import = 'custom.plugins' },
1016+
{ import = 'custom.plugins' },
9331017
}, {
9341018
ui = {
9351019
-- If you are using a Nerd Font: set icons to an empty table which will use the

lazyvim.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extras": [
3+
4+
],
5+
"news": {
6+
"NEWS.md": "10960"
7+
},
8+
"version": 7
9+
}

lua/custom/plugins/lazygit.lua

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
return {
2+
'kdheepak/lazygit.nvim',
3+
lazy = true,
4+
cmd = {
5+
'LazyGit',
6+
'LazyGitConfig',
7+
'LazyGitCurrentFile',
8+
'LazyGitFilter',
9+
'LazyGitFilterCurrentFile',
10+
},
11+
-- optional for floating window border decoration
12+
dependencies = {
13+
'nvim-lua/plenary.nvim',
14+
},
15+
-- setting the keybinding for LazyGit with 'keys' is recommended in
16+
-- order to load the plugin when the command is run for the first time
17+
keys = {
18+
{ '<leader>gg', '<cmd>LazyGitCurrentFile<cr>', desc = 'LazyGit' },
19+
},
20+
}

0 commit comments

Comments
 (0)