OS X + Vim: NerdTree'de (Vim) Bir Klasör Bulucuyu Aç


5

ben kullanıyorum NerdTree MacVim için eklenti dini ve kendimi sık sık Bulucu'da dosyaları ile çalışmak için bir klasör açmak isteyen bulmak. Bir örnek, bazı görüntüleri önizlemek ve kopyalamak isteyebilir.

Geçerli dizini değiştirmeyi gerektirmeyen bunu yapmanın hızlı bir yolu var mı? Mükemmel senaryom şöyle olurdu:

  • İmleci istediğiniz klasöre taşıyın
  • "Bazı tuşlara" basın
  • Klasör bulucuda açılır.

Yanıtlar:


2

Bu, NERDTree ile birlikte kullanıma hazır olarak sunulmaktadır. fs_menu.vim Eklenti. Aslında, bu özellik yalnızca Mac’te çalışır:

if has("gui_mac") || has("gui_macvim") || has("mac")
    call NERDTreeAddMenuItem({'text': '(r)eveal in Finder the current node', 'shortcut': 'r', 'callback': 'NERDTreeRevealInFinder'})
    call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFile'})
    call NERDTreeAddMenuItem({'text': '(q)uicklook the current node', 'shortcut': 'q', 'callback': 'NERDTreeQuickLook'})
endif

NERDTree görünümünde bir düğüme gidin, m fs menüsünü açmak için o geçerli düğümü açmak için Dizinler yeni bir Finder penceresinde açılacak, dosyalar, dosya türü için varsayılan düzenleyici olarak ayarladığınız uygulamada açılacaktır.

Bu tamamlandı iltifat açık komut:

function! NERDTreeExecuteFile()
    let treenode = g:NERDTreeFileNode.GetSelected()
    if treenode != {}
        call system("open '" . treenode.path.str() . "'")
    endif
endfunction

1
Bu harika, çok uzun zaman sonra takip ettiğiniz için teşekkürler. Sadece denedim ve mükemmel çalışıyor! :)
Jason

1

Bir klasörü açmak için shell komutu

$ open /path/to/folder

Bir Vim işlevinde bu komut şöyle çağrılabilir:

let g:mypath = /path/to/folder
execute "silent !open " . g:mypath

NERDTree'nin belgelerinde basit ve takip etmesi kolay bir örnek :

call NERDTreeAddKeyMap({
       \ 'key': 'foo',
       \ 'callback': 'NERDTreeCDHandler',
       \ 'quickhelpText': 'echo full path of current node',
       \ 'scope': 'DirNode' })

function! NERDTreeCDHandler(dirnode)
    call a:dirnode.changeToDir()
endfunction

kullanarak genişletebileceğiniz küresel nesneler yukarıda birkaç satır listelenmiştir :

g:NERDTreePath
g:NERDTreeDirNode
g:NERDTreeFileNode
g:NERDTreeBookmark

Belgelere bağlantılarınızın güncel olmadığından emin olun.
Ben

@Ben, böyle bir şey olabilirdi, evet. Bağlantılar düzeltildi.
romainl

@romainl yine oldu! belki belirli bir taahhüde bağlantı
kroe

@kroe, tekrar düzeltildi, umarım bu sefer iyi olur.
romainl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.