technique:vim

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:vim [2022/01/06 12:26] francoisatechnique:vim [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Utiliser Vim ====== +**Cette page est obsolèteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/vim|vim]]**
- +
-CheatSheet : [[https://vim.rtorr.com/lang/fr_fr|https://vim.rtorr.com/lang/fr_fr]] +
- +
-[[https://vim-adventures.com/|https://vim-adventures.com/]] +
- +
-[[https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/42693-vim-lediteur-de-texte-du-programmeur|https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/42693-vim-lediteur-de-texte-du-programmeur]] +
- +
-===== Commandes ===== +
-<code> +
- +
-vimtutor fr +
- +
-</code> +
- +
-<code> +
-cp /etc/vim/vimrc ~.vimrc +
- +
-</code> +
- +
-===== Notions vim ===== +
- +
-buffer : espace mémoire associé à un fichier ouvert +
- +
-views : espace de l'écran dédié à un buffer +
- +
-tab : onglet contenant une ou des views +
- +
-Il est possible d'avoir plusieurs views d'un même buffer côté à côte. +
- +
-Il est possible d'avoir plusieurs tabs contenant chacun des views. +
- +
-===== Configuration .vimrc ===== +
- +
-<code> +
-cp /etc/vimrc ~/.vimrc +
- +
-</code> +
- +
-Et le personnaliser avec : +
- +
-<code> +
-set mouse=r # pour gestion copier/coller avec la souris dans un terminal +
-set number +
-set tabstop=4 +
-set expandtab +
- +
-</code> +
- +
-===== Templates ===== +
- +
-Créer le dossier templates : +
- +
-<code> +
-mkdir -p ~/.vim/templates +
- +
-</code> +
- +
-Créer ou récupérer des modèles comme ''xhtml.html''+
-<code> +
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> +
-  <head> +
-    <title>Titre de la page</title> +
-    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> +
-    <meta http-equiv="Content-Language" content="fr" /> +
-    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes" charset="utf-8"> +
-    <meta name="author" content="Prénom Nom" /> +
-    <meta name="generator" content="vim" /> +
-    <meta name="keywords" lang="fr" content="" /> +
-    <meta name="description" content="la description de la page" /> +
-   </head> +
-<body> +
-    <p>Contenu !</p> +
-</body> +
-</html> +
- +
-</code> +
- +
-Puis les activer dans .vimrc par extension : +
- +
-<code> +
-au bufNewFile *.html 0r ~/.vim/templates/xhtml.html +
- +
-</code> +
-==== Exemple de .vimrc ==== +
- +
-<code vim> +
-set history=700 +
- +
-filetype plugin on +
-filetype indent on +
- +
-set autoread +
-set ruler +
-set ignorecase +
-set smartcase +
-set hlsearch +
-set showmatch +
- +
-syntax enable +
-autocmd BufRead,BufNewFile *.vue setfiletype html +
- +
-if has("gui_running"+
-    set guioptions-=T +
-    set guioptions+=e +
-    set t_Co=256 +
-    set guitablabel=%M\ %t +
-endif +
- +
-set encoding=utf8 +
-set ffs=unix,dos,mac +
- +
-set nobackup +
-set nowb +
-set noswapfile +
- +
-set expandtab +
-set smarttab +
- +
-set shiftwidth=4 +
-set tabstop=4 +
- +
-set lbr +
-set tw=500 +
- +
-set ai "Auto indent +
-set si "Smart indent +
-set wrap "Wrap lines +
- +
-" Treat long lines as break lines (useful when moving around in them) +
-map j gj +
-map k gk +
- +
-" Always show the status line +
-set laststatus=2 +
- +
-" Format the status line +
-set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l +
- +
-let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' +
-if empty(glob(data_dir . '/autoload/plug.vim')) +
-  silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' +
-  autocmd VimEnter * PlugInstall --sync source $MYVIMRC +
-endif +
- +
-call plug#begin('~/.vim/plugged'+
-Plug 'yuezk/vim-js' +
-Plug 'HerringtonDarkholme/yats.vim' +
-Plug 'maxmellon/vim-jsx-pretty' +
-Plug 'neoclide/coc.nvim', {'branch': 'release'+
-Plug 'NLKNguyen/papercolor-theme' +
-Plug 'vim-airline/vim-airline' +
-Plug 'vim-airline/vim-airline-themes' +
-call plug#end() +
- +
-colorscheme PaperColor +
-set background=dark +
-set number +
-let g:airline_theme='papercolor' +
-let g:airline_powerline_fonts = 1 +
- +
-set encoding=utf-8 +
- +
-set hidden +
-set nobackup +
-set nowritebackup +
- +
-set updatetime=300 +
-set shortmess+=c +
- +
-" Always show the signcolumn, otherwise it would shift the text each time +
-" diagnostics appear/become resolved. +
-if has("nvim-0.5.0") || has("patch-8.1.1564"+
-  " Recently vim can merge signcolumn and number column into one +
-  set signcolumn=number +
-else +
-  set signcolumn=yes +
-endif +
- +
-" Use tab for trigger completion with characters ahead and navigate. +
-" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by +
-" other plugin before putting this into your config. +
-inoremap <silent><expr> <TAB> +
-      \ pumvisible() ? "\<C-n>"+
-      \ <SID>check_back_space() ? "\<TAB>"+
-      \ coc#refresh() +
-inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" +
- +
-function! s:check_back_space() abort +
-  let col = col('.') - 1 +
-  return !col || getline('.')[col - 1 =~# '\s' +
-endfunction +
- +
-" Use <c-space> to trigger completion. +
-if has('nvim'+
-  inoremap <silent><expr> <c-space> coc#refresh() +
-else +
-  inoremap <silent><expr> <c-@> coc#refresh() +
-endif +
- +
-" Make <CR> auto-select the first completion item and notify coc.nvim to +
-" format on enter, <cr> could be remapped by other vim plugin +
-inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() +
-                              \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" +
- +
-" Use `[g` and `]g` to navigate diagnostics +
-" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. +
-nmap <silent> [g <Plug>(coc-diagnostic-prev) +
-nmap <silent> ]g <Plug>(coc-diagnostic-next) +
- +
-" GoTo code navigation. +
-nmap <silent> gd <Plug>(coc-definition) +
-nmap <silent> gy <Plug>(coc-type-definition) +
-nmap <silent> gi <Plug>(coc-implementation) +
-nmap <silent> gr <Plug>(coc-references) +
- +
-" Use K to show documentation in preview window. +
-nnoremap <silent> K :call <SID>show_documentation()<CR> +
- +
-function! s:show_documentation() +
-  if (index(['vim','help'], &filetype)>= 0) +
-    execute 'h '.expand('<cword>'+
-  elseif (coc#rpc#ready()) +
-    call CocActionAsync('doHover'+
-  else +
-    execute '!' . &keywordprg . " " . expand('<cword>'+
-  endif +
-endfunction +
- +
-" Highlight the symbol and its references when holding the cursor. +
-autocmd CursorHold silent call CocActionAsync('highlight'+
- +
-" Symbol renaming. +
-nmap <leader>rn <Plug>(coc-rename) +
- +
-" Formatting selected code. +
-xmap <leader> <Plug>(coc-format-selected) +
-nmap <leader> <Plug>(coc-format-selected) +
- +
-augroup mygroup +
-  autocmd! +
-  " Setup formatexpr specified filetype(s). +
-  autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected'+
-  " Update signature help on jump placeholder. +
-  autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp'+
-augroup end +
- +
-" Applying codeAction to the selected region. +
-" Example: `<leader>aap` for current paragraph +
-xmap <leader> <Plug>(coc-codeaction-selected) +
-nmap <leader> <Plug>(coc-codeaction-selected) +
- +
-" Remap keys for applying codeAction to the current buffer. +
-nmap <leader>ac  <Plug>(coc-codeaction) +
-" Apply AutoFix to problem on the current line. +
-nmap <leader>qf  <Plug>(coc-fix-current) +
- +
-" Map function and class text objects +
-" NOTE: Requires 'textDocument.documentSymbol' support from the language server. +
-xmap if <Plug>(coc-funcobj-i) +
-omap if <Plug>(coc-funcobj-i) +
-xmap af <Plug>(coc-funcobj-a) +
-omap af <Plug>(coc-funcobj-a) +
-xmap ic <Plug>(coc-classobj-i) +
-omap ic <Plug>(coc-classobj-i) +
-xmap ac <Plug>(coc-classobj-a) +
-omap ac <Plug>(coc-classobj-a) +
- +
-" Remap <C-f> and <C-b> for scroll float windows/popups. +
-if has('nvim-0.4.0') || has('patch-8.2.0750'+
-  nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" +
-  nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" +
-  inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" +
-  inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" +
-  vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" +
-  vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" +
-endif +
- +
-" Use CTRL-S for selections ranges. +
-" Requires 'textDocument/selectionRange' support of language server. +
-nmap <silent> <C-s> <Plug>(coc-range-select) +
-xmap <silent> <C-s> <Plug>(coc-range-select) +
- +
-" Add `:Format` command to format current buffer. +
-command! -nargs=0 Format :call CocAction('format'+
- +
-" Add `:Fold` command to fold current buffer. +
-command! -nargs=? Fold :call     CocAction('fold', <f-args>+
- +
-" Add `:OR` command for organize imports of the current buffer. +
-command! -nargs=0 OR   :call     CocAction('runCommand', 'editor.action.organizeImport'+
- +
-" Add (Neo)Vim's native statusline support. +
-" NOTE: Please see `:h coc-status` for integrations with external plugins that +
-" provide custom statusline: lightline.vim, vim-airline. +
-set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} +
- +
-" Mappings for CoCList +
-" Show all diagnostics. +
-nnoremap <silent><nowait> <space> :<C-u>CocList diagnostics<cr> +
-" Manage extensions. +
-nnoremap <silent><nowait> <space> :<C-u>CocList extensions<cr> +
-" Show commands. +
-nnoremap <silent><nowait> <space> :<C-u>CocList commands<cr> +
-" Find symbol of current document. +
-nnoremap <silent><nowait> <space> :<C-u>CocList outline<cr> +
-" Search workspace symbols. +
-nnoremap <silent><nowait> <space> :<C-u>CocList -I symbols<cr> +
-" Do default action for next item. +
-nnoremap <silent><nowait> <space> :<C-u>CocNext<CR> +
-" Do default action for previous item. +
-nnoremap <silent><nowait> <space> :<C-u>CocPrev<CR> +
-" Resume latest coc list. +
-nnoremap <silent><nowait> <space> :<C-u>CocListResume<CR> +
- +
-</code> +
- +
  • technique/vim.1641468405.txt.gz
  • Dernière modification : 2022/01/06 12:26
  • de francoisa