Compare commits

..

2 commits

Author SHA1 Message Date
4d048aecd8
bootstrap: Update package list
Updated package list for March 2022.
Contains some small fixes for missing packages like transmission khal
and nsxiv that I have started using more heavily and removed some
redundancies, especially around the big X switch some time back.

Generally, no huge changes.

Fixes #1.
2022-03-08 22:50:26 +01:00
ebf4274c5b
nvim: Add mapping for finding hidden files
While <leader>f searches files, now <leader><c-f> searches for hidden
files.
Simple addition but can be very useful if you work for example in
dotfolder directories or similar.

Now I just need to find a way to do the same for live_grep. The
functionality is there (live_grep can take the same `{hidden=true}`
argument as find_files) but terminal emulators don't distinguish between
<c-f> and <c-F> so there is no convenient mapping for it yet.
2022-03-08 10:15:33 +01:00
2 changed files with 66 additions and 0 deletions

View file

@ -130,6 +130,9 @@ map.n.nore['<leader>S'] =
[[:lua require 'telescope.builtin'.oldfiles(require 'telescope.themes'.get_ivy())<cr>]]
-- fuzzy find files in cwd
map.n.nore['<leader>f'] = [[:lua require 'telescope.builtin'.find_files()<cr>]]
-- fuzzy find hidden files in cwd
map.n.nore['<leader><c-f>'] =
[[:lua require 'telescope.builtin'.find_files({hidden=true})<cr>]]
-- general full-text search in cwd with rg
map.n.nore['<leader>F'] = [[:lua require 'telescope.builtin'.live_grep()<cr>]]

View file

@ -0,0 +1,63 @@
-- will open the pdf file for whatever file i am currently viewing.
-- POC only and only useful in a ALMP context for now.
local fn = vim.fn
local function isDirectory(ftype)
if ftype == 'directory' then return true end
return false
end
local function isFile(ftype)
if ftype == 'file' then return true end
return false
end
local function cleanPath(path)
if path:match("^~") then path = os.getenv("HOME") .. path:sub(2) end
return path
end
-- Returns a set of all files at the target directory, as well
-- as subdirectories if the recursive argument is set to true.
-- Set has the form { "full/path/name.md" = "name.md" }
local function get_all_files(path, recursive)
local f = {}
path = cleanPath(path)
local handle = vim.loop.fs_scandir(path)
while handle do
local name, ftype = vim.loop.fs_scandir_next(handle)
if not name then break end
if isDirectory(ftype) and recursive then
local subdir = get_all_files(path .. "/" .. name, true)
for k, v in pairs(subdir) do f[tostring(k)] = v end
end
if isFile(ftype) then f[tostring(path .. "/" .. name)] = name end
end
return f
end
local function get_basename()
local name = fn.expand("%:t")
return string.gsub(name, ".md", "")
end
local function find_pdf(dir, bibkey)
local pdfs = get_all_files(dir)
for k, v in pairs(pdfs) do if v:find(bibkey, 0, true) then return k end end
end
local function open_pdf(name) fn.jobstart("zathura '" .. name .. "'") end
local function openCurrentPdf()
local fname = get_basename()
local pdf_path = find_pdf(
"/home/marty/projects/jobs/almp/output/Literature",
fname)
print(pdf_path)
open_pdf(pdf_path)
end
return {open = openCurrentPdf}