repos/dotfiles

Config files from my daily system
Commits Files Refs README
commit 301ec31431bb89c637f2d8086f109f510c7e1a49
parent 6e76ec4631f2166a5432d6ff87b22653507341f0
Author: mjkloeckner <martinjkloeckner@gmail.com>
Date:   Sun, 23 Apr 2023 18:35:54 -0300

add JumpBuffers function

the JumpBuffers function allows the user to jump to a certain buffer by
the name of the file or if it doesnt exists creates a new buffer

Diffstat:
M.config/nvim/init.vim | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 2 deletions(-)
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
@@ -56,6 +56,8 @@
     set number
     set relativenumber
     set cursorline
+    set listchars=tab:\|\ ,trail:-,nbsp:+,space:ยท
+    set list
     set mouse=a
     set undofile
     set undodir=~/.cache/nvim/undo
@@ -113,7 +115,6 @@
     map <leader>F :NERDTreeFocus<CR>
     map <leader>r :NERDTreeFind<CR>
     map <leader>s :source $HOME/.config/nvim/init.vim<CR>
-
     map <leader>c :make
 
     " Disable ex-mode keybinding (type visual thing)
@@ -255,7 +256,7 @@
     " Highjack nerdtree's highjacking to keep normal nerdtree from loading on directories
     " let g:NERDTreeHijackNetrw=0
     " augroup NERDTreeHijackNetrw
-    " autocmd VimEnter * silent! autocmd! FileExplorer
+    "    autocmd VimEnter * silent! autocmd! FileExplorer
     " augroup END
 
     " autocmd VimEnter * call CloseExtraNERDTree()
@@ -380,10 +381,36 @@
         copen
     endfunction
 
+    function JumpBuffer()
+        let l:prev_buffer = expand("#:t")
+        echohl Question
+        let l:input = split(input("Change buffer: ", l:prev_buffer, "buffer"), ' ')
+        echohl None
+        if empty(l:input)
+            return
+        endif
+        mod
+
+        let l:string = join(l:input, ' ')    
+        echo l:string
+        if bufexists(l:string)
+            exe "b " .. l:string
+        else
+            if filereadable(l:string)
+                exe "e " .. l:string
+            else
+                exe "e " .. l:string
+                mod
+                echo "file doesn't exists: editinig new file `".. l:string .. "`"
+            endif
+        endif
+    endfunction
+
     nnoremap <Leader>C :call Compile()<CR>
     nnoremap <Leader>v :call Search()<CR>
     nnoremap <Leader>m :call SearchMan()<CR>
     nnoremap <Leader>h :call SearchHelp()<CR>
+    nnoremap <Leader>b :call JumpBuffer()<CR>
 
     function Text()
         set nuw=8
@@ -490,3 +517,46 @@
 
     " delete word in command/prompt mode with Ctrl + Backspace
     cnoremap <C-H> <C-w>
+
+    let $FZF_DEFAULT_OPTS = ""
+    let g:fzf_layout = {'down':'10'}
+    " let g:fzf_layout = { 'window': { 'width': 1.0, 'height': 0.25, 'relative': v:true, 'yoffset': 1.0 } }
+
+    autocmd! FileType fzf
+    autocmd  FileType fzf set laststatus=0 noshowmode noruler nonumber norelativenumber cmdheight=0
+      \| autocmd BufLeave <buffer> set laststatus=1 showmode ruler number relativenumber cmdheight=1
+
+    " Redundant to NERDTree's implementation to change selected node permissions
+    " https://github.com/preservim/nerdtree/pull/1348
+    function! ChangePermissions()
+        let l:node = expand('%')
+
+        let l:prompt = "Change node permissions: "
+
+        echohl Question
+        let l:newNodePerm = input(l:prompt)
+        echohl None
+        mod
+
+        if empty(l:newNodePerm)
+            return
+        endif
+
+        if !empty(l:node)
+            let l:cmd = 'chmod ' .. newNodePerm .. ' ' .. l:node
+            let l:error = split(system(l:cmd), '\n')
+
+            if !empty(l:error)
+                echo l:error
+            endif
+
+            let l:cmd = 'ls --zero -l ' .. l:node
+            let l:ls_node = system(l:cmd)
+            echo l:ls_node
+            return
+        endif
+
+        echo 'node not recognized'
+    endfunction
+
+    nnoremap <Leader>p :call ChangePermissions()<CR>