Javascript 你的conkerorrc是什么样子的?

Javascript 你的conkerorrc是什么样子的?,javascript,firefox,configuration,emacs,conkeror,Javascript,Firefox,Configuration,Emacs,Conkeror,改变了我浏览网页的方式:它基本上是Emacs+Firefox,在中使用基于javascript的配置,而不是.Emacs中的elisp配置 多年来,我通过从别人那里获取一些零碎的东西,建立了一个庞大的.emacs定制库。我只是从Conkeror开始,但它使用JS(远比Elisp广为人知)这一事实一定意味着有一些令人惊奇的东西 想分享你的作品吗我对与Django生成的页面(或其他动态网页)交互良好的内容特别感兴趣。 例如,我喜欢一个基于Conkeror的动作记录器,它可以让我浏览一个站点并找到bu

改变了我浏览网页的方式:它基本上是Emacs+Firefox,在中使用基于javascript的配置,而不是.Emacs中的elisp配置

多年来,我通过从别人那里获取一些零碎的东西,建立了一个庞大的.emacs定制库。我只是从Conkeror开始,但它使用JS(远比Elisp广为人知)这一事实一定意味着有一些令人惊奇的东西

想分享你的作品吗我对与Django生成的页面(或其他动态网页)交互良好的内容特别感兴趣。


例如,我喜欢一个基于Conkeror的动作记录器,它可以让我浏览一个站点并找到bug,然后用一次按键立即将动作序列保存并提交为bug报告。通过包含复制错误所需的JS操作,它将成为最终的测试工具——甚至比Selenium更好,因为它完全由键盘驱动

嗯,我真的帮不了你,但我只是想说,虽然我是一个emacs人,但我还是放弃了Conkeror,因为我觉得浏览体验好多了

Conkeror仅仅是带有Emacs键绑定的Firefox。我认为它不是,也不打算像Emacs那样是一个功能齐全的环境

它允许您使用磨损的Emacs肌肉记忆,从而简化了您的浏览体验。让你的手更多地放在键盘上,而不是一直从键盘跳到鼠标

所以我不认为它真的能够做一些你想象的事情

它的发展也相当缓慢,可能人手不足。例如,你会发现,你不能使用最常见的Firefox插件/扩展。萤火虫、油桶、齿轮等

我确实喜欢在一些浏览任务中使用它:它有阅读Reddit、GoogleReader和其他使事情变得更简单的特殊模式


但我也同意binOr的观点,vimperator更好,即使你是emacs的人。当然,如果您使用VIM,会有所帮助

因为似乎没有其他人对发布实际回复感兴趣,我会的

function my_title_format (window) {
   return 'conkeror {'+get_current_profile()+'}'+window.buffers.current.description;
}
当我使用多个配置文件时,我发现在窗口标题中包含配置文件名很有帮助。现在,它对我没有多大帮助,因为我使用它,也不太查看窗口列表,但它对其他窗口管理器非常有用

define_key(content_buffer_normal_keymap, "C-x C-c", "confirm-quit");
can_kill_last_buffer = false;
这两种方法通过关闭最后一个缓冲区来防止我意外关闭conkeror窗口。

这是我的:

// homepage = "http://www.google.com";

// set default webjump
read_url_handler_list = [read_url_make_default_webjump_handler("google")];
// possibly valid URL
function possibly_valid_url (str) {
    return (/[\.\/:]/.test(str)) &&
        !(/\S\s+\S/.test(str)) &&
        !(/^\s*$/.test(str));
}

// page modes
require("page-modes/google-search-results.js"); // google search results
require("page-modes/wikipedia.js");     // wikipedia mode

// webjumps
define_webjump("gmail", "https://mail.google.com"); // gmail inbox
define_webjump("twitter", "http://twitter.com/#!/search/%s", $alternative = "https://twitter.com/");  // twitter
define_webjump("w3schools", "http://www.w3schools.com"); // w3schools site
define_webjump("w3search", "http://www.google.com/search?sitesearch=www.w3schools.com&as_q=%s"); // w3schools search
define_webjump("jquery", "http://docs.jquery.com/Special:Search?ns0=1&search=%s"); // jquery
define_webjump("archwiki", "https://wiki.archlinux.org/index.php?search=%s"); // arch wiki
define_webjump("stackoverflow", "http://stackoverflow.com/search?q=%s", $alternative = "http://stackoverflow.com/"); // stackoverflow
define_webjump("sor", "http://stackoverflow.com/search?q=[r]+%s", $alternative = "http://stackoverflow.com/questions/tagged/r"); // stackoverflow R section
define_webjump("stats", "http://stats.stackexchange.com/search?q=%s"); // stats
define_webjump("torrentz", "http://torrentz.eu/search?q=%s"); // torrentz
define_webjump("avaxsearch", "http://avaxsearch.com/avaxhome_search?q=%s&a=&c=&l=&sort_by=&commit=Search"); // avaxsearch
define_webjump("imdb", "http://www.imdb.com/find?s=all;q=%s"); // imdb
define_webjump("duckgo", "http://duckduckgo.com/?q=%s", $alternative = "http://duckduckgo.com"); // duckduckgo
define_webjump("blekko", "http://blekko.com/ws/%s", $alternative = "http://blekko.com/"); // blekko
define_webjump("youtube", "http://www.youtube.com/results?search_query=%s&aq=f", $alternative = "http://www.youtube.com"); // youtube
define_webjump("duckgossl", "https://duckduckgo.com/?q=%s"); // duckduckgo SSL
define_webjump("downforeveryoneorjustme", "http://www.downforeveryoneorjustme.com/%s"); // downforeveryoneorjustme
define_webjump("urbandictionary", "http://www.urbandictionary.com/define.php?term=%s"); // urban dictionary
define_webjump("rts", "http://rts.rs");             // RTS
define_webjump("facebook", "http://www.facebook.com");      // facebook homepage

// tab bar
require("new-tabs.js");

// clicks in new buffer
require("clicks-in-new-buffer.js");
// Set to either OPEN_NEW_BUFFER(_BACKGROUND)
clicks_in_new_buffer_target = OPEN_NEW_BUFFER_BACKGROUND; // Now buffers open in background.

// history webjump
define_browser_object_class(
    "history-url", null, 
    function (I, prompt) {
        check_buffer (I.buffer, content_buffer);
        var result = yield I.buffer.window.minibuffer.read_url(
            $prompt = prompt,  $use_webjumps = false, $use_history = true, $use_bookmarks = false);
        yield co_return (result);
    });

interactive("find-url-from-history",
            "Find a page from history in the current buffer",
            "find-url",
            $browser_object = browser_object_history_url);

interactive("find-url-from-history-new-buffer",
            "Find a page from history in the current buffer",
            "find-url-new-buffer",
            $browser_object = browser_object_history_url);

define_key(content_buffer_normal_keymap, "h", "find-url-from-history-new-buffer");
define_key(content_buffer_normal_keymap, "H", "find-url-from-history");

// load session module
require("session.js");
session_auto_save_auto_load = true; // auto-load session

// don't open download buffer automatically
remove_hook("download_added_hook", open_download_buffer_automatically);

// don't show clock
remove_hook("mode_line_hook", mode_line_adder(clock_widget));

// add favicons
require("favicon");
add_hook("mode_line_hook", mode_line_adder(buffer_icon_widget), true);
read_buffer_show_icons = true;

// add content handlers
content_handlers.set("application/pdf", content_handler_save); // pdf
// torrent
// mp3
// ogg

function define_switch_buffer_key (key, buf_num) {
    define_key(default_global_keymap, key,
               function (I) {
           switch_to_buffer(I.window,
                                    I.window.buffers.get_buffer(buf_num));
               });
}
for (let i = 0; i < 10; ++i) {
    define_switch_buffer_key(String((i+1)%10), i);
}

function enable_scrollbars (buffer) {
    buffer.top_frame.scrollbars.visible = true;
}
add_hook("create_buffer_late_hook", enable_scrollbars);
//主页=”http://www.google.com";
//设置默认webjump
read_url_handler_list=[read_url_make_default_webjump_handler(“谷歌”)];
//可能有效的URL
函数可能\u有效\u url(str){
返回(/[\.\/:]/.test(str))&&
!(/\S\S+\S/.test(str))&&
!(/^\s*$/.test(str));
}
//页面模式
要求(“页面模式/google search results.js”);//谷歌搜索结果
要求(“页面模式/wikipedia.js”);//维基百科模式
//网络跳跃
定义网络跳转(“gmail”https://mail.google.com"); // gmail收件箱
定义_webjump(“推特”http://twitter.com/#!/search/%s“,$alternative=”https://twitter.com/");  // 啁啾
定义网络跳转(“w3schools”http://www.w3schools.com"); // W3学校网站
定义Web跳转(“w3search”http://www.google.com/search?sitesearch=www.w3schools.com&as_q=%s"); // w3schools搜索
定义_webjump(“jquery”http://docs.jquery.com/Special:Search?ns0=1&search=%s"); // jquery
定义_webjump(“archwiki”https://wiki.archlinux.org/index.php?search=%s"); // 拱门维基
定义_webjump(“stackoverflow”http://stackoverflow.com/search?q=%s“,$alternative=”http://stackoverflow.com/"); // 栈溢出
定义网络跳转(“sor”http://stackoverflow.com/search?q=[r] +%s“,$alternative=”http://stackoverflow.com/questions/tagged/r"); // 堆垛机段
定义网络跳转(“统计数据”)http://stats.stackexchange.com/search?q=%s"); // 统计数据
定义网络跳转(“torrentz”http://torrentz.eu/search?q=%s"); // 托伦茨
定义_webjump(“avaxsearch”http://avaxsearch.com/avaxhome_search?q=%s&a=&c=&l=&sort_by=&commit=Search"); // avaxsearch
定义网络跳转(“imdb”http://www.imdb.com/find?s=all;q=%s”);//imdb
定义网络跳转(“duckgo”http://duckduckgo.com/?q=%s“,$alternative=”http://duckduckgo.com"); // 鸭蛋
定义网络跳转(“blekko”http://blekko.com/ws/%s“,$alternative=”http://blekko.com/"); // 布雷科
定义网络跳转(“youtube”http://www.youtube.com/results?search_query=%s&aq=f“,$alternative=”http://www.youtube.com"); // youtube
定义网络跳转(“duckgossl”https://duckduckgo.com/?q=%s"); // DuckDuckGoSSL
定义_webjump(“downforeveryoneorjustme”http://www.downforeveryoneorjustme.com/%s"); // 每一个人或每一个人
定义网络跳转(“城市词典”)http://www.urbandictionary.com/define.php?term=%s"); // 城市词典
定义网络跳转(“rts”http://rts.rs");             // 实时战略
定义网络跳转(“facebook”http://www.facebook.com");      // facebook主页
//选项卡栏
要求(“new tabs.js”);
//在新缓冲区中单击
要求(“单击new buffer.js”);
//设置为打开\新建\缓冲区(\后台)
单击\u新建\u缓冲区\u目标=打开\u新建\u缓冲区\u背景;//现在,缓冲区在后台打开。
//历史网络跳转
定义浏览器对象类(
“历史url”,空,
功能(I,提示){
检查缓冲区(即缓冲区、内容缓冲区);
var result=yield I.buffer.window.minibuffer.read\u url(
$prompt=prompt,$use\u webjumps=false,$use\u history=true,$use\u bookmarks=false);
收益率收益率(结果);
});
交互式(“从历史中查找url”,
“从当前缓冲区中的历史记录中查找页面”,
“查找url”,
$browser\u object=browser\u object\u history\u url);
交互式(“从历史记录中查找url”“新建缓冲区”,
“从当前缓冲区中的历史记录中查找页面”,
“查找url新缓冲区”,
$browser\u object=browser\u object\u history\u url);
定义密钥(内容、缓冲区、正常密钥)