forked from pub-solar/os
neovim: improve multiopen, use buffers
This commit is contained in:
parent
b46cfbbeb0
commit
62c8f8eebd
1 changed files with 10 additions and 6 deletions
|
@ -65,28 +65,31 @@ nmap <leader>n :NnnPicker %<CR>
|
|||
nmap <leader>N :NnnPicker<CR>
|
||||
|
||||
lua <<EOF
|
||||
local state = require("telescope.actions.state")
|
||||
local actions = require("telescope.actions")
|
||||
local telescope = require("telescope")
|
||||
|
||||
local multiopen = function(prompt_bufnr)
|
||||
local picker = require('telescope.actions.state').get_current_picker(prompt_bufnr)
|
||||
local picker = state.get_current_picker(prompt_bufnr)
|
||||
local multi = picker:get_multi_selection()
|
||||
|
||||
if vim.tbl_isempty(multi) then
|
||||
require('telescope.actions').select_default(prompt_bufnr)
|
||||
actions.select_default(prompt_bufnr)
|
||||
return
|
||||
end
|
||||
|
||||
require('telescope.actions').close(prompt_bufnr)
|
||||
actions.close(prompt_bufnr)
|
||||
for _, entry in pairs(multi) do
|
||||
local filename = entry.filename or entry.value
|
||||
local lnum = entry.lnum or 1
|
||||
local lcol = entry.col or 1
|
||||
if filename then
|
||||
vim.cmd(string.format("tabnew +%d %s", lnum, filename))
|
||||
vim.cmd(string.format("e +%d %s", lnum, filename))
|
||||
vim.cmd(string.format("normal! %dG%d|", lnum, lcol))
|
||||
end
|
||||
end
|
||||
end
|
||||
local actions = require("telescope.actions")
|
||||
local telescope = require("telescope")
|
||||
|
||||
telescope.setup{
|
||||
defaults = {
|
||||
mappings = {
|
||||
|
@ -96,6 +99,7 @@ telescope.setup{
|
|||
["I"] = actions.move_to_top,
|
||||
["K"] = actions.move_to_bottom,
|
||||
["<C-c>"] = actions.close,
|
||||
['<CR>'] = multiopen,
|
||||
},
|
||||
i = {
|
||||
['<CR>'] = multiopen,
|
||||
|
|
Loading…
Add table
Reference in a new issue