5

Vim CoC Explorer..Explorador de archivos más rápido de todos

 3 years ago
source link: https://dev.to/teodev1611/vim-coc-explorer-explorador-de-archivos-mas-rapido-de-todos-oh4
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Cover image for Vim CoC Explorer..Explorador de archivos más rápido de todos

Vim CoC Explorer..Explorador de archivos más rápido de todos

Apr 16

・4 min read

Coc Explorer un explorador de archivos inspirado en Vscode File explorer super configurable y hermoso con git status incluido. Vamos a empezar con la instalación para empezar usarlos.

ACLARACIÓN:

Esta configuración a sido gracias a NikolaM-Dev

Limpiar los plugins

Para evitar cualquier conflicto con los otros file explorers para eso los borramos desde la función call plug#begin() y corremos :PlugClean y damos y luego de eso procedemos a la instalación

Instalar CoC

Para ver si tenemos instalado Coc podemos hacerlo con el comando:

:CocInfo
Enter fullscreen modeExit fullscreen mode

Debería aparecer lo siguiente:

Si da comando no reconocido procedemos a instalar coc añadiendo esto a plug

Plug 'neoclide/coc.nvim', {'branch': 'release'}
Enter fullscreen modeExit fullscreen mode

Luego corremos:

:so%
Enter fullscreen modeExit fullscreen mode

Y al final corremos:

:PlugInstall
Enter fullscreen modeExit fullscreen mode

Luego de esto cerramos neovim y volvemos a entrar.

Instalar CoC Explorer

Una vez instalado CoC podemos instalar CoC Explorer

:CocInstall coc-explorer 
Enter fullscreen modeExit fullscreen mode

Te aparecera algo asi:

Una vez que este finalizado se verá de la siguiente manera:

Ahora procedemos a configurar.

Configurar Coc Explorer

Para empezar deberías tener un archivo coc-settings.json o lo creas.

Una vez aquí abre llaves y pega lo siguiente:

  // coc-explorer
  "explorer.openAction.for.directory": "expandOrCollapse",
  "explorer.git.icon.status.added": "✚",
  "explorer.git.icon.status.deleted": "✖",
  "explorer.git.icon.status.renamed": "➜",
  "explorer.git.icon.status.unmerged": "≠",
  "explorer.git.icon.status.untracked": "?",
  "explorer.git.icon.status.modified": "✹",
  "explorer.git.icon.status.ignored": "☒",
  "explorer.git.icon.status.mixed": "*",
  "explorer.icon.enableNerdfont": true,
  "explorer.quitOnOpen": true,
  "explorer.file.showHiddenFiles": false,
  "explorer.file.column.clip.copy": "",
  "explorer.file.column.clip.cut": "",
  "explorer.width": 25,
  "explorer.file.hiddenRules": {
    "extensions": ["o", "a", "obj", "pyc"],
    "filenames": ["\\.byebug+", "\\.DS_Store|"],
    "patternMatches": ["^\\.git$", "^\\node_modules$", "^\\plugged$"]
  },
  "explorer.keyMappings.global": {
    // "i": false, // cancel default mapkey
    "s": "toggleSelection",
    "<tab>": "actionMenu",
    "gk": ["wait", "expandablePrev"],
    "gj": ["wait", "expandableNext"],
    "h": ["wait", "collapse"],
    "l": ["wait", "expandable?", "expand", "open"],
    "J": ["wait", "toggleSelection", "normal:j"],
    "K": ["wait", "toggleSelection", "normal:k"],
    "gl": ["wait", "expand:recursive"],
    "gh": ["wait", "collapse:recursive"],
    "<2-LeftMouse>": [
      "expandable?",
      ["expanded?", "collapse", "expand"],
      "open"
    ],
    "o": ["wait", "expanded?", "collapse", "expand"],
    "<cr>": ["expandable?", ["expanded?", "collapse", "expand"], "open"],
    "b": "open:split:plain",
    "v": "open:vsplit",
    "C": ["wait", "expandable?", "cd", "open"],
    "u": ["wait", "gotoParent"],
    "gs": ["wait", "reveal:select"],
    "il": "preview:labeling",
    //"ic": "preview:content",
    "ic": false,
    //"Il": "previewOnHover:toggle:labeling",
    "Il": false,
    //"Ic": "previewOnHover:toggle:content",
    "Ic": false,
    "II": "previewOnHover:disable",
    "yp": "copyFilepath",
    "yn": "copyFilename",
    "yy": "copyFile",
    "dd": "cutFile",
    "p": "pasteFile",
    "t": "delete",
    "d": "deleteForever",
    "n": "addFile",
    "N": "addDirectory",
    "r": "rename",
    "m": "rename",
    "<dot>": "toggleHidden",
    "R": "refresh",
    "?": "help",
    "q": "quit",
    "<esc>": "esc",
    "X": "systemExecute",
    "gd": "listDrive",
    "f": "search",
    "F": "searchRecursive",
    "gf": "gotoSource:file",
    "gb": "gotoSource:buffer",
    "[[": ["wait", "sourcePrev"],
    "]]": ["wait", "sourceNext"],
    "[i": ["wait", "indentPrev"],
    "]i": ["wait", "indentNext"],
    "[m": ["wait", "markPrev:modified"],
    "]m": ["wait", "markNext:modified"],
    "[d": ["wait", "markPrev:diagnosticError:diagnosticWarning"],
    "]d": ["wait", "markNext:diagnosticError:diagnosticWarning"],
    "[D": ["wait", "markPrev:diagnosticError"],
    "]D": ["wait", "markNext:diagnosticError"],
    "gp": ["wait", "markPrev:git"],
    "gn": ["wait", "markNext:git"],
    "ga": "gitStage",
    "gr": "gitUnstage"
  },
  "explorer.file.root.template": "[icon & 1] PROJECT ([root])",
  "explorer.buffer.root.template": "[icon & 1] OPEN EDITORS",
  "explorer.file.child.template": "[git | 2] [selection | clip | 1] [indent][icon | 1] [diagnosticError & 1][filename omitCenter 1][modified][readonly] [linkIcon & 1][link growRight 1 omitCenter 5]",

Enter fullscreen modeExit fullscreen mode

Esto dará a CoC Explorer una apariencia minimalista y con varios atajos si quieres leer mas sobre CoC Explorer puedes seguir aquí

Ahora vamos al vimrc y al init.vim y colocamos lo siguiente esta configuración es para Windows siguiente a esta estará la de Linux y Mac

"------------------------------------------------COC EXPLORER CONFIG
" Disable netrw.
let g:loaded_netrw  = 1
let g:loaded_netrwPlugin = 1
let g:loaded_netrwSettings = 1
let g:loaded_netrwFileHandlers = 1
let g:loaded_matchit = 1

let g:coc_explorer_global_presets = {
\   '.vim': {
\     'root-uri': '%APPDATA%\Local\nvim',
\   },
\   'cocConfig': {
\      'root-uri': '%APPDATA%\Local\nvim\coc-settings.json',
\   },
\   'tab': {
\     'position': 'tab',
\     'quit-on-open': v:true,
\   },
\   'floating': {
\     'position': 'floating',
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingTop': {
\     'position': 'floating',
\     'floating-position': 'center-top',
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingLeftside': {
\     'position': 'floating',
\     'floating-position': 'left-center',
\     'floating-width': 50,
\     'open-action-strategy': 'sourceWindow',
\   },
\   'floatingRightside': {
\     'position': 'floating',
\     'floating-position': 'right-center',
\     'floating-width': 50,
\     'open-action-strategy': 'sourceWindow',
\   },
\   'simplify': {
\     'file-child-template': '[selection | clip | 1] [indent][icon | 1] [filename omitCenter 1]'
\   },
\   'buffer': {
\     'sources': [{'name': 'buffer', 'expand': v:true}]
\   },
\   'git': {
\     'sources': [{'name': 'git', 'expand': v:true}]
\   },
\ }
autocmd BufEnter * if (winnr("$") == 1 && &filetype == 'coc-explorer') | q | endif
augroup coc-explorer
  if @% == '' || @% == '.'
    autocmd User CocNvimInit bd
    autocmd User CocNvimInit CocCommand explorer
  endif
augroup END
if exists('#User#CocGitStatusChange')
  doautocmd <nomodeline> User CocGitStatusChange
endif
nnoremap <leader>n :CocCommand explorer<CR>
nnoremap <leader>p :CocCommand explorer --preset floating<CR> 

Enter fullscreen modeExit fullscreen mode

Ahora la de Linux y Mac. Para esto necesitamos ir a este repositorio de un amigo llamado NikolaM-Dev el tiene la configuración para linux te la dejo aquí

Ahora recargamos vim y listo esto se abre con leader n o puedes cambiarlo.

Agradecimientos

Gracias por leer este post para cualquier cosa que desees agregar los comentarios si quieres enterarte de las ultimas novedades de mi configuración puedes seguirme en github aquí

Hecho con ❤ en Ecuador


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK