Maison  >  Questions et réponses  >  le corps du texte

vim - Comment gérer les scripts Ultisnips?

Fichier php.snippets 里的 snippet...endsnippet 块越来越多;
越来越不方便管理,尤其是有些代码块很大时;
观察了下 honza/vim-snippets, a constaté qu'il existe également une langue et un fichier ;

Existe-t-il une méthode ou un remède populaire pour le traiter ?

淡淡烟草味淡淡烟草味2734 Il y a quelques jours777

répondre à tous(2)je répondrai

  • 巴扎黑

    巴扎黑2017-05-16 16:39:13

    Voir la documentation
    Voir la documentation
    Voir la documentation
    https://github.com/SirVer/ultisnips/blob...

    En utilisant une stratégie similaire à la façon dont Vim détecte |ftplugins|, UltiSnips
    parcourt les répertoires de définition d'extraits de code à la recherche de fichiers
    avec des noms des modèles suivants : ft.snippets, ft_*.snippets ou
    ft/, où "ft " est le 'type de fichier' du document actuel et "" est
    un caractère générique en forme de shell correspondant à n'importe quelle chaîne, y compris la chaîne vide.
    Le tableau suivant montre quelques noms de fichiers d'extraits typiques et leur
    type de fichier associé.

    snippet filename         filetype ~
    ruby.snippets            ruby
    perl.snippets            perl
    c.snippets               c
    c_my.snippets            c
    c/a                      c
    c/b.snippets             c
    all.snippets             *all
    all/a.snippets           *all

    Par exemple, si vous avez un tas d'extraits Ruby, vous pouvez diviser ces extraits en fichiers séparés. Vous pouvez ensuite les gérer via des répertoiresruby/*[.snippets], 也可以直接用文件管理ruby_*.snippets

    .

    Au fait, comment gérez-vous le code ?

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 16:39:13

    Solution : pliage (basé sur les hypothèses suivantes)

    D'après moi, on suppose que votre gestion gênante fait référence à plus de blocs d'extraits, plus le fichier est long et il n'est pas facile à parcourir

    Les paramètres .vimrc sont les suivants

    set foldcolumn=1 "设置vim左侧1个宽度用来显示folds闭合状态"
    set foldmethod=syntax "folds根据语言来决定如何进行闭合"
    

    Commande (en mode normal) :

    zR "打开所有folds"
    zM "关闭所有folds"
    zi "在以上两个命令间切换,其实是切换foldenable On/Off"
    

    Comparaison avant et après la fermeture des plis (via la commande ci-dessus)

    Fonctionnement : fermez d'abord tous les blocs d'extraits via la commande zM (le fichier devient très petit, chaque extrait n'affiche qu'une seule ligne), puis parcourez facilement pour trouver les extraits dont vous avez besoin (déplacez le curseur là-bas), puis utilisez zR ou zi ouvre tous les extraits. À ce moment, vous pouvez voir le contenu de cet extrait
    Bonus : après avoir suivi les opérations ci-dessus, le curseur doit être en bas. Utilisez la commande zz pour déplacer facilement le contenu au milieu de l'écran. visualisation.

    Enfin, un simple .vimrc est joint pour référence (le plugin est géré par Vundle) :

    set nocompatible
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    
    call vundle#begin()
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Plugin goes here
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'tpope/vim-sensible'
    Plugin 'tpope/vim-fugitive'
    Plugin 'tpope/vim-commentary'
    Plugin 'tpope/vim-repeat'
    Plugin 'scrooloose/syntastic'
    Plugin 'tpope/vim-surround'
    Plugin 'vim-airline/vim-airline'
    Plugin 'vim-airline/vim-airline-themes'
    Plugin 'tomasr/molokai'
    Plugin 'morhetz/gruvbox'
    Plugin 'mattn/emmet-vim'
    Plugin 'SirVer/ultisnips'
    Plugin 'honza/vim-snippets'
    Plugin 'ctrlpvim/ctrlp.vim'
    Plugin 'scrooloose/nerdtree'
    Plugin 'mru.vim'
    Plugin 'rking/ag.vim'
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Plugin stops here
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    call vundle#end()
    
    filetype plugin indent on
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Tab Settings
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    set tabstop=4
    set shiftwidth=4
    set expandtab
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Colorscheme Settings
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    set background=dark
    if has('gui_running')
        colorscheme molokai
    else
        colorscheme slate
    endif
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Text
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    set linebreak
    set textwidth=500
    set wrap
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Other Settings
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    set number
    let mapleader=','
    set foldcolumn=1
    set foldmethod=syntax
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " User ,ev to open .vimrc file
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    nmap <leader>ev :tabedit $MYVIMRC<CR>
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Automatically source .vimrc file
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    augroup source_vimrc
        autocmd!
        autocmd BufWritePost $MYVIMRC source $MYVIMRC
    augroup END
    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    " CtrlP
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""
    let g:ctrlp_user_command = 'ag %s -i --nocolor --nogroup --hidden
        \ --ignore .git
        \ --ignore .svn
        \ --ignore .hg
        \ --ignore .DS_Store
        \ --ignore "**/*.pyc"
        \ -g ""'
    
    let g:ctrlp_working_path_mode=0
    let g:ctrlp_match_window='results=100'
    
    """"""""""""""""""""""""""""""
    " JavaScript section
    """""""""""""""""""""""""""""""
    au FileType javascript call JavaScriptFold()
    au FileType javascript setl fen
    au FileType javascript setl nocindent
    
    au FileType javascript imap <c-t> $log();<esc>hi
    au FileType javascript imap <c-a> alert();<esc>hi
    
    au FileType javascript inoremap <buffer> $r return 
    au FileType javascript inoremap <buffer> $f //--- PH ----------------------------------------------<esc>FP2xi
    
    function! JavaScriptFold() 
        setl foldmethod=syntax
        setl foldlevelstart=1
        syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend
    
        function! FoldText()
            return substitute(getline(v:foldstart), '{.*', '{...}', '')
        endfunction
        setl foldtext=FoldText()
    endfunction

    répondre
    0
  • Annulerrépondre