mirror of
https://github.com/Baipyrus/nvim-config.git
synced 2024-12-25 12:51:45 +00:00
Compare commits
10 Commits
7f9256b56c
...
b47664f0ec
Author | SHA1 | Date | |
---|---|---|---|
b47664f0ec | |||
5e2cd283e5 | |||
854eaaef90 | |||
ae7799c6bc | |||
216d892c17 | |||
db73a4653f | |||
5b9ada1b4e | |||
f9ae577395 | |||
d1503995c8 | |||
4675abf4fa |
@ -1,9 +0,0 @@
|
||||
-- Plugin to automatically create and restore simple sessions
|
||||
return {
|
||||
'rmagatti/auto-session',
|
||||
config = function()
|
||||
require('auto-session').setup {
|
||||
auto_session_enable_last_session = true,
|
||||
}
|
||||
end,
|
||||
}
|
@ -1,3 +1,13 @@
|
||||
-- Fix oil absolute path to relative path conversion
|
||||
vim.api.nvim_create_augroup('OilRelPathFix', {})
|
||||
vim.api.nvim_create_autocmd('BufLeave', {
|
||||
group = 'OilRelPathFix',
|
||||
pattern = 'oil:///*',
|
||||
callback = function()
|
||||
vim.cmd 'cd .'
|
||||
end,
|
||||
})
|
||||
|
||||
return {
|
||||
'stevearc/oil.nvim',
|
||||
opts = {},
|
||||
|
@ -61,14 +61,63 @@ vim.keymap.set({ 'n', 'v' }, '<M-.>', '<C-W>>')
|
||||
vim.keymap.set({ 'n', 'v' }, '<M-=>', '<C-W>+')
|
||||
vim.keymap.set({ 'n', 'v' }, '<M-->', '<C-W>-')
|
||||
|
||||
local function get_visual_selection()
|
||||
-- Get selection position
|
||||
local s_start = vim.fn.getpos "'<"
|
||||
local s_end = vim.fn.getpos "'>"
|
||||
-- Get line count
|
||||
local n_lines = math.abs(s_end[2] - s_start[2]) + 1
|
||||
-- Read lines from buffer
|
||||
local lines = vim.api.nvim_buf_get_lines(0, s_start[2] - 1, s_end[2], false)
|
||||
-- Subtract unselected sections from lines
|
||||
lines[1] = string.sub(lines[1], s_start[3], -1)
|
||||
if n_lines == 1 then
|
||||
lines[n_lines] = string.sub(lines[n_lines], 1, s_end[3] - s_start[3] + 1)
|
||||
else
|
||||
lines[n_lines] = string.sub(lines[n_lines], 1, s_end[3])
|
||||
end
|
||||
-- Return selected
|
||||
return lines
|
||||
end
|
||||
|
||||
local function global_cmd_yank()
|
||||
-- Prompt user input for expression
|
||||
local inexpr = vim.fn.input 'Enter expression: '
|
||||
local outsep = vim.fn.input 'Enter separator: '
|
||||
|
||||
-- Get the (selected) lines
|
||||
local lines = nil
|
||||
local mode = vim.api.nvim_get_mode()['mode']
|
||||
if string.find(mode:lower(), '^v') then
|
||||
lines = get_visual_selection()
|
||||
else
|
||||
lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
||||
end
|
||||
|
||||
-- Apply expression on all lines
|
||||
local matches = vim.fn.matchstrlist(lines, inexpr)
|
||||
local extracted = vim.tbl_map(function(value)
|
||||
return value['text']
|
||||
end, matches)
|
||||
|
||||
-- Concat matches according to separator
|
||||
local value = table.concat(extracted, outsep)
|
||||
-- Trigger global search to highlight results
|
||||
vim.cmd('g/' .. inexpr .. '/')
|
||||
-- Write to system register
|
||||
vim.fn.setreg('+', value)
|
||||
|
||||
print('Found ' .. #extracted .. ' results!')
|
||||
end
|
||||
|
||||
vim.keymap.set({ 'n', 'v' }, '<leader>gy', global_cmd_yank, { desc = '[G]lobal command [Y]ank' })
|
||||
|
||||
if vim.g.neovide then
|
||||
-- System clipboard keybinds in normal and visual mode
|
||||
vim.keymap.set({ 'n', 'v' }, '<C-S-c>', '"+y', { desc = 'Yank to System clipboard' })
|
||||
vim.keymap.set({ 'n', 'v' }, '<C-S-v>', '"+p', { desc = 'Paste from System clipboard' })
|
||||
-- Clipboard for insert mode
|
||||
vim.keymap.set({ 'i' }, '<C-S-v>', '<Esc>"+pi', { desc = 'Paste from System clipboard' })
|
||||
-- Clipboard for command mode
|
||||
vim.keymap.set('c', '<C-S-v>', '<C-R>+', { desc = 'Paste from System clipboard' })
|
||||
-- Clipboard for command and insert mode
|
||||
vim.keymap.set({ 'c', 'i' }, '<C-S-v>', '<C-R>+', { desc = 'Paste from System clipboard' })
|
||||
end
|
||||
|
||||
-- [[ Basic Autocommands ]]
|
||||
|
@ -166,6 +166,7 @@ return {
|
||||
pyright = {},
|
||||
svelte = {},
|
||||
gopls = {},
|
||||
intelephense = {},
|
||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||
--
|
||||
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||
|
@ -23,6 +23,7 @@ return {
|
||||
'markdown',
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'php',
|
||||
},
|
||||
-- Autoinstall languages that are not installed
|
||||
auto_install = true,
|
||||
|
@ -25,7 +25,7 @@ return {
|
||||
['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
|
||||
['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
|
||||
['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
|
||||
['<leader>g'] = { name = '[G]it', _ = 'which_key_ignore' },
|
||||
['<leader>g'] = { name = '[G]it/[G]lobal', _ = 'which_key_ignore' },
|
||||
['<leader>b'] = { name = '[B]uffer/[B]reakpoint', _ = 'which_key_ignore' },
|
||||
['<leader>c'] = { name = '[C]ode/[C]odeium/[C]hange', _ = 'which_key_ignore' },
|
||||
['<leader>cd'] = { name = '[D]irectory', _ = 'which_key_ignore' },
|
||||
@ -50,6 +50,7 @@ return {
|
||||
['<leader>pn'] = { name = '[N]o', _ = 'which_key_ignore' },
|
||||
['<leader>l'] = { name = '[L]ist', _ = 'which_key_ignore' },
|
||||
['<leader>f'] = { name = '[F]ormat/[F]ile', _ = 'which_key_ignore' },
|
||||
['<leader>g'] = { name = '[G]lobal', _ = 'which_key_ignore' },
|
||||
}, { mode = 'v' })
|
||||
end,
|
||||
},
|
||||
|
@ -10,8 +10,7 @@ vim.api.nvim_exec2('language en_US', {})
|
||||
-- Sets the shell to use for system() and ! commands in windows
|
||||
if vim.fn.has 'win32' == 1 and vim.fn.has 'wsl' == 0 then
|
||||
vim.opt.shell = vim.fn.executable 'pwsh' == 1 and 'pwsh' or 'powershell'
|
||||
vim.opt.shellcmdflag =
|
||||
'-NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;'
|
||||
vim.opt.shellcmdflag = '-NoLogo -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;'
|
||||
vim.opt.shellredir = '-RedirectStandardOutput %s -NoNewWindow -Wait'
|
||||
vim.opt.shellpipe = '2>&1 | Out-File -Encoding UTF8 %s; exit $LastExitCode'
|
||||
vim.opt.shellxquote = ''
|
||||
|
Loading…
Reference in New Issue
Block a user