vim刷新firefox
Monday, September 20th, 2010yangsong 同学分享了一篇vim保存文件时刷新firefox的文章,用到了firefox的插架监听个端口通信的。貌似window下还用不了。我这firefox已经够慢了,对插件相当的节制,所以做个了发消息的,开始刷新IE很简单,sendmessage就行,firefox比较哏,屏了,只好去模拟按键……
代码如下
/*
* jondynet http://jondy.net/
* gcc firefox_f5.c -DWINVER=0x0501
*/
#include "windows.h"
#include "Winuser.h"
int main (int argc, char * argv [])
{
HWND hwnd = FindWindow ("MozillaUIWindowClass", NULL);
if (hwnd == 0)
{
MessageBox (0, "Where is firefox!", "Error", MB_ICONINFORMATION);
return 0;
}
//char buffer[300];
//SendMessage(hwnd,WM_GETTEXT,sizeof(buffer),(LPARAM)buffer);
//MessageBox(NULL,buffer,"Captured Text",MB_OK);
SetForegroundWindow(hwnd);
//Sleep(2000);
// minimize
//SendMessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
// ctrl + f5
//PostMessage(hwnd,WM_KEYDOWN,VK_F5,0);
//PostMessage(hwnd,WM_KEYUP,VK_F5,0);
//PostMessage(hwnd,WM_KEYDOWN,VK_CONTROL,0);
//PostMessage(hwnd,WM_KEYDOWN,'R',0);
//PostMessage(hwnd,WM_KEYUP,'R',0);
//PostMessage(hwnd,WM_KEYUP,VK_CONTROL,0);
// SendInput
INPUT inpdd[1];
KEYBDINPUT kbyinp;
kbyinp.wVk = VK_F5;
kbyinp.wScan = 0x3F;
kbyinp.time = 0;
kbyinp.dwFlags = 0;
kbyinp.dwExtraInfo = 0;
inpdd[0].type = INPUT_KEYBOARD;
inpdd[0].ki = kbyinp;
SendInput(1,&inpdd[0],sizeof(inpdd[0]));
//关闭
//PostMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
}
vim的设置看这里
" autocmd BufWriteCmd *.html,*.css,*.tmpl :call Refresh_firefox()
" function! Refresh_firefox()
" if &modified
" write
" silent !firefox_f5
" "silent !echo 'vimYo = content.window.pageYOffset;
" " \ vimXo = content.window.pageXOffset;
" " \ BrowserReload();
" " \ content.window.scrollTo(vimXo,vimYo);
" " \ repl.quit();' |
" " \ nc localhost 4242 2>&1 > /dev/null
" endif
" endfunction
silent !firefox_f5 这个是调用俺这个的,下边注释的那个是用插件的。