2012-01-03 8 views
12

में वेब ब्राउज़र में वर्तमान फ़ाइल खोलें मैं HTML फ़ाइल को भेजने में सक्षम होना चाहता हूं जिसे मैं वर्तमान में vim में अपने वेब ब्राउज़र, क्रोम में संपादित कर रहा हूं। मैं लिनक्स चला रहा हूँ।विम

यह मैं हो जाता है बहुत करीब:

nmap <silent> <leader>w :!google-chrome % & 

ब्राउज़र को खोलता है और सही फ़ाइल प्रदर्शित करता है। हालांकि, आदेश पृष्ठभूमि में नहीं चल रहा है, जो & है जो करना है। इसके बजाय vim पृष्ठभूमि में गिरता है और मुझे अपनी टर्मिनल विंडो में कुछ टेक्स्ट आउटपुट मिलता है। मुझे फिर कुछ क्लिक करना है और Enter अग्रभूमि पर वापस आने के लिए vim प्राप्त करने के लिए दबा रहा है।

क्या मुझे कुछ याद आ रही है?

अद्यतन: सभी सुझावों के लिए धन्यवाद। ऐसा लगता है कि जब ब्राउज़र विंडो खुलती है तो फोकस मेरी टर्मिनल विंडो से दूर हो जाता है। यकीन नहीं है कि अगर मैं इसके बारे में कुछ भी कर सकता हूं।

+0

मिले इस उपयोगी (एक RTFM जवाब की तरह): [http://vim.wikia.com/wiki/Preview_current_HTML_file](http://vim.wikia.com/wiki/Preview_current_HTML_file) – Ariovistust

उत्तर

2

आप कर सकते हैं exec क्रोम silent ly:

nmap <silent> <leader>w :exec 'silent !google-chrome % &' 

:exe[cute] {expr1} .. स्ट्रिंग कि {expr1} के मूल्यांकन का परिणाम है एक पूर्व आदेश के रूप में क्रियान्वित।

+0

धन्यवाद, लेकिन मुझे अभी भी एक समान परिणाम मिल रहा है। यह मानक आउटपुट के लिए लिख रहा है, 'मौजूदा ब्राउज़र सत्र में नई विंडो बनाई गई।' मैंने आउटपुट को '/ dev/null' पर रीडायरेक्ट करने का प्रयास किया, लेकिन यह भी काम नहीं करता था। –

+0

@ जोशएरल। कोशिश करें ': exec' – kev

+0

Grrr। वही परिणाम 'vim' में एक ही काम करने के कई तरीके हैं। :) –

2

मैं विंडोज पर पृष्ठभूमि में आदेश चलाने के लिए shell.vim प्लगइन का उपयोग करता हूं। मैं यह वास्तव में क्या करता है पता नहीं है, लेकिन मेरा मानना ​​है कि यह भी लिनक्स पर उस के लिए काम करता है:

http://www.vim.org/scripts/script.php?script_id=3123

Shell.vim अतुल्यकालिक बाहरी आदेश के लिए अनुमति नहीं है, लेकिन मैं नहीं जानता कि क्या यह आप की अनुमति देता है विम टर्मिनल के साथ फोकस रखने के लिए, मैन्युअल रूप से वापस जाने से बचें।

अतुल्यकालिक कॉल, नीचे है, हालांकि यह होने विम अजगर समर्थन के साथ संकलित पर निर्भर करता है और मैं परीक्षण नहीं किया की अनुमति देता है कि एक और प्लगइन: https://github.com/MarcWeber/vim-addon-background-cmd

7

मेरी .vimrc से:

nnoremap <F12>f :exe ':silent !firefox %'<CR> 
nnoremap <F12>c :exe ':silent !chromium-browser %'<CR> 
nnoremap <F12>o :exe ':silent !opera %'<CR> 

इन तीन कमांड प्रभाव के बिना चयनित ब्राउज़र में मौजूदा फ़ाइल खोलें। <F12> का उपयोग इसे केवल जीवीआईएम बनाता है, हालांकि।

+1

डिफ़ॉल्ट ब्राउज़र खोलने के लिए 'समझदार-ब्राउज़र' का उपयोग करने के बारे में कैसे? ओएस एक्स पर – Christian

+0

, मैंने देखा है कि 'ओपन%' अच्छी तरह से काम करता प्रतीत होता है, और 'ओपन'% '' उन फ़ाइलों के लिए थोड़ा बेहतर है जिनमें गैर-''' मेटाएक्टएक्टर्स –

+0

है यदि क्रोम या फ़ायरफ़ॉक्स अभी तक शुरू नहीं हुआ है , जब तक आप ब्राउज़र बंद नहीं करते हैं, तब तक यह विम या नियोविम फंस जाता है। –

0

मैंने वेब खोजों को संभालने के लिए 7 आदेशों के साथ small plugin लिखा था।

स्थापित करने के बाद आप इस्तेमाल कर सकते हैं:

  • :WSearchInit एक साइटों वर्तमान फ़ोल्डर
  • :WSearchSaveTagAndSite google www.google.com/search?q={WSearch} में भंडार इसी टैग

के साथ एक साइट को बचाने के लिए शुरू हुई और फिर करने के लिए खोजते हैं:

  • :WSearch आपका नवीनतम भाग सहेजे गए या खोजे गए {WSearch} को कर्सर शब्द
  • :WSearch Manual SearchWSearch जैसा ही होगा, लेकिन मैन्युअल + खोज के साथ {WSearch} को प्रतिस्थापित करेगा।

मुझे आशा है कि यह आपको या अन्य लोगों को एक ही समस्या के साथ मदद कर सकता है।

0

यहाँ लिनक्स, विंडोज से आपके ब्राउज़र में फ़ाइलों का पूर्वावलोकन करने पर विभिन्न सुझावों यह मानचित्रण आप एक ब्राउज़र का उपयोग करने HTML फ़ाइल वर्तमान में संपादित किया जा रहा पूर्वावलोकन करने के लिए अनुमति देता है कर रहे हैं, और मैक ओएस एक्स Preview current HTML file

nnoremap <F5> :silent update<Bar>silent !firefox %:p &<CR> 

तो आवश्यक हो, वर्तमान फ़ाइल सहेजा जाता है, तो फ़ायरफ़ॉक्स फ़ाइल खोलने के लिए प्रयोग किया जाता है। यदि चाहें तो "फ़ायरफ़ॉक्स" को किसी अन्य ब्राउज़र के नाम से बदलें, जैसे "क्रोमियम-ब्राउज़र"।

तो सवाल के रूप में कहा गया है कि क्रोम इच्छित ब्राउज़र है, तो यह अपने vimrc में जोड़ें:

nnoremap <F5> :silent update<Bar>silent !google-chrome %:p &<CR> 

साथ ही ओपी का जवाब, मैं उन है कि इस पर पहुंच के लिए इस लिंक साझा करना चाहते थे विंडोज और मैक ओएस एक्स समर्थन की तलाश में सवाल।

1

मैक के लिए, आप कुछ है कि अधिक इस तरह दिखता है टाइप करने के लिए हो सकता है: Notce यह अंत पर Safari.app है

nnoremap <F12>f :exe ':silent !open -a /Applications/Firefox.app %'<CR> 
nnoremap <F12>c :exe ':silent !open -a /Applications/Google\ Chrome.app %'<CR> 
nnoremap <F12>g :exe ':silent !open -a /Applications/Google\ Chrome.app %'<CR> 
nnoremap <F12>s :exe ':silent !open /Applications/Safari.app %'<CR> 

... यह आप कुछ ही मिनटों बचा सकते हैं। :)

2

:!open % -a Google\ Chrome के बारे में क्या?

+0

मुझे इस आदेश का परिभाषा प्रारूप कहां मिल सकता है? – hiveer

+0

यह विम से टर्मिनल कमांड चलाने के लिए कहता है, यह सुनिश्चित नहीं है कि सहायता फ़ाइल में संदर्भ ढूंढना संभव है या नहीं। –

+0

'सहायता!' और 'सहायता%' –

0

विंडोज 7 या 10 के लिए अपने .vimrc फ़ाइल में इस लाइन डाल:

nnoremap <silent> <F5> :!start file://C:/Users/<your username here>/AppData/Local/Google/Chrome/Application/chrome.exe %:p<CR> 

या कोशिश: windows7 लिए Preview current HTML file

0

:

nnoremap <silent> <F5> :!start file://C:/Program Files (x86)\Google\Chrome\Application\chrome.exe %:p<CR> 

अधिक जानकारी के लिए इस लिंक को देख x64, - वर्तमान फ़ाइल को खोलने के लिए F2, - कर्सर के तहत वर्तमान कीवर्ड को देखने के लिए F3।

for g:chrome_exe in [ 
    \'C:\Progra~2\Google\Chrome\Application\chrome.exe', 
    \'C:\Progra~1\Google\Chrome\Application\chrome.exe', 
    \'C:\Progra~1\Google\Chrome\Applic~1\chrome.exe', 
    \'C:\Users\'.$USERNAME.'\AppData\Local\Google\Chrome\Application\chrome.exe' 
    \] 
    if !filereadable(g:chrome_exe) 
     continue 
    endif 
    let g:google_url='https://www.google.com/search?oq=&gws_rd=cr&dcr=0&ei=0&q=' 
    :nmap <F2> :exe ":!start ".g:chrome_exe." --user-data-dir=%TEMP%/chrome-vim-sandbox file:///".expand("%:p")<CR> 
    :nmap <F3> :exe ":!start ".g:chrome_exe." --user-data-dir=%TEMP%/chrome-vim-sandbox ".g:google_url.expand("<cword>")<CR> 
    break 
endfor