2012-01-03 111 views
12

Me gustaría poder enviar el archivo HTML que estoy editando actualmente en vim a mi navegador web, Chrome. Estoy ejecutando Linux.Abrir archivo actual en el navegador web en Vim

Esto me pone muy cerca:

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

El navegador se abre y muestra el archivo correcto. Sin embargo, el comando no se ejecuta en segundo plano, que es lo que se supone que debe hacer el &. En cambio, vim cae al fondo y obtengo un texto de salida en la ventana de mi terminal. Luego tengo que hacer clic y Enter presionando para que mi vim vuelva al primer plano.

¿Echo de menos algo?

ACTUALIZACIÓN: Gracias por todas las sugerencias. El problema parece ser que el foco parece alejarse de mi ventana de terminal cuando se abre la ventana del navegador. No estoy seguro de si hay algo que pueda hacer al respecto.

+0

encontraron este artículo útil (una especie de respuesta RTFM): [http://vim.wikia.com/wiki/Preview_current_HTML_file](http://vim.wikia.com/wiki/Preview_current_HTML_file) – Ariovistust

Respuesta

2

Puede exec cromo silent ly:

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

:exe[cute] {expr1} .. ejecuta la cadena que resulta de la evaluación de expr1 {} como un comando Ex.

+0

Gracias, pero sigo obteniendo un resultado similar. Está escribiendo en salida estándar, 'creó una nueva ventana en la sesión del navegador existente. Intenté redirigir la salida a'/dev/null', pero tampoco funcionó. –

+0

@JoshEarl. Pruebe ': exec' – kev

+0

Grrr. Mismo resultado. 'vim' tiene muchas formas de hacer lo mismo. :) –

2

Uso el complemento shell.vim para ejecutar comandos en segundo plano en Windows. No sé exactamente lo que hace, pero creo que también trabaja para que en Linux:

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

Shell.vim sí permite comandos externos asíncronos, pero no sé si se le permite para mantener el foco con la terminal Vim, evite retroceder manualmente.

Otro plugin que permite que las llamadas asíncronas está por debajo, a pesar de que se basa en tener Vim compilado con soporte para Python y no he probado: https://github.com/MarcWeber/vim-addon-background-cmd

7

Desde mi .vimrc:

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

Estos tres los comandos abren el archivo actual en el navegador elegido sin efectos secundarios. Sin embargo, el uso de <F12> lo convierte en solo GVim.

+1

¿Qué hay de usar 'sensible-navegador' para abrir el navegador predeterminado? – Christian

+0

en OS X, me he dado cuenta de que '! Open%' parece funcionar bien, y '! Open '%'' ligeramente mejor para archivos que contienen metacaracteres que no son '' '' –

+0

Si Chrome o Firefox aún no se ha iniciado , esto hace que Vim o Neovim se estanquen hasta que cierres el navegador. –

0

Escribí small plugin con 7 comandos para manejar búsquedas en la web.

Después de la instalación puede usar:

  • :WSearchInit para iniciar un sitios de repositorio en la carpeta actual
  • :WSearchSaveTagAndSite google www.google.com/search?q={WSearch} para guardar un sitio con la etiqueta correspondiente

y luego buscar con:

  • :WSearch ejecutará su último el sitio guardado o buscado que reemplaza {WSearch} con la palabra recorrida
  • :WSearch Manual Search hará lo mismo que WSearch, pero reemplazará {WSearch} con Manual + Buscar.

Espero que pueda ayudarlo a usted u otras personas con el mismo problema.

0

Éstos son varios consejos sobre la vista previa de archivos en su navegador de Linux, Windows y Mac OS X. Preview current HTML file

Este mapeo permite el uso de un navegador para previsualizar el archivo HTML que se está editando.

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

Si necesario, el archivo actual se guarda, a continuación, Firefox se utiliza para abrir el archivo . Reemplace "firefox" con el nombre de otro navegador si lo desea, como "Chrome-browser".

Así como la cuestión afirma que Chrome es el navegador deseado, a continuación, añadir esto a su vimrc:

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

Además de responder a la OP, que quería compartir este enlace para aquellos que alcanza este pregunta en busca de soporte para Windows y Mac OS X.

1

Para Mac, es posible que tenga que escribir algo que se parece más a esto:

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> 

notce es Safari.app en el extremo ... que va a ahorrar unos cuantos minutos. :)

2

¿Qué hay de :!open % -a Google\ Chrome?

+0

¿Dónde puedo encontrar el formato de definición de este comando? – hiveer

+0

Esto solo le pide a Vim que ejecute un comando de terminal, sin estar seguro de si es posible encontrar una referencia en el archivo de ayuda. –

+0

'help!' And 'help%' –

0

para Windows 7 o 10 Deja esta línea en su archivo .vimrc:

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

o tratar:

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

para más detalles, véase este enlace: Preview current HTML file

0

Para Windows7 x64, - F2 para abrir el archivo actual, - F3 para buscar la palabra actual bajo el cursor.

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 
Cuestiones relacionadas