V2EX walkinrain
 walkinrain 最近的时间轴更新
walkinrain

walkinrain

V2EX 第 293520 号会员,加入于 2018-02-23 15:52:38 +08:00
walkinrain 最近回复了
2019-04-08 01:14:54 +08:00
回复了 tamlok 创建的主题 Markdown VNote:一个更懂程序员和 Markdown 的笔记
@tamlok
win 下的一些使用问题请教:
请问一下,vnote 有没有命令行参数?我看了一下 code,由于对 qt 和 c++不熟,只发现了个-d 还有没有其他命令行方式?
用命令行方式,直接提供一个 md 文件可以打开。直接提供一个目录,貌似没有什么效果。

一个不算严重的小问题:
表格编辑中,有光标乱跳现象,8.02 秒,删除秒,光标跳到.后,添加一个汉字,光标跳到 2 后。
| A 定分 | U 定分 | 速度 | 参数 | 输入 | 输出 | 时间 [^1] |
| :---: | :---: | :--: | :-----: | :--: | :-: | :-------: |
| | | □□ | 长度列表 | str | str | 8.02 秒 |

其实表格实时变化的需求并不太大吧?改到表格完成,光标移开后再变化也行吧?



==========================下面是些幻想和建议===========================

最近用了一段时间 vnote,挺不错,由于是功能性建议,我就在这里乱说说,你看有没有什么能用的上的。

1. vnote 笔记本概念就是每个目录下增加了一个_vnote.json 文件,目录浏览器面板感觉意义真的不大,索性直接统一到笔记中,可以一键将笔记本转换为文件夹,一键将文件夹转换为笔记本。只需要维护一个主目录列表即可。

2. 小推车是个有意思的概念,但是我没想明白你对这个概念的想法是什么。我试验过,小推车内容在 vnote 重启后就消失了。可否将小推车设计为一个非易失的文件路径列表,这就类似于一个 md 文件收藏夹了。

3. 目录浏览器面板,除了拖进文件夹至主界面,几乎无所用,收藏功能其实和笔记本功能有所重叠。

4. 既然主推笔记,笔记本,搜索等笔记概念,快速的笔记,笔记本转换,收藏就该是主导方向,现在文件夹转笔记本,md 文件收藏到笔记本内,功能性都很弱。

--------------------------------------------------------------------------------------------------------------------
以上的 1-4 的建议其实是一体的,包含我对 vnote 笔记本,文件夹,等概念综合性整合的建议。

具体实现建议:
a. 不再强制区分笔记本与文件夹,笔记本面板增加一个文件夹树形控件,显示所有笔记本列表(非易失),所有打开的目录(易失),所有收藏的目录(非易失),分别用笔记本,空文件夹,实文件夹图标区分,该文件夹控件中右键菜单可转换笔记本为文件夹,文件夹转换为笔记本(弹窗是否保留图片至本地目录)。

b. 笔记本面板的笔记文件列表中的 md 文件的右键菜单添加收藏至 xx 笔记本,或者直接拖拽至新增加的文件夹树形控件,完成收藏 **复制** 的过程

c. 小推车改为非易失性文件列表,增加收藏至 xx 笔记本功能。

d. 软件默认笔记本(便携版:本目录下 UserData,安装版:文档目录下:vNote )

e. 由于有默认笔记本,便携版在移至其他电脑就不会发生错误。另外,由于笔记本列表,小推车列表均问路径列表,在加载的时候可以添加目录存在性检测。
----------------------------------------------------------------------------------------------------------------------

5. 工具栏:原工具栏分为笔记本,MD 格式,其他三个部分。建议改为:
系统:vNote 登录,新建笔记本,保存更改并阅读,放弃更改并阅读(建议合二为一,切换状态时候提示保存即可),扩展编辑区,笔记本模式,阅读模式,编辑模式。
笔记本:新建目录,新建笔记,删除笔记,笔记信息,放入小推车,收藏至..,
文件:新建文件,保存文件,打开文件,保存,全部保存,全部关闭,查找(打开搜索面板,当前笔记中查找)。
编辑:剪贴,复制,粘贴,撤销,重做,放大,缩小 [其实意义不大,但是这个一般通用编辑器的标配]
MD 格式: 原内容
其他:原内容

6. 菜单:
文件菜单,新增项 [新建 md 文件,打开 md 文件,保存,全部保存,关闭,全部关闭]
新增:视图菜单,新增项 [笔记本模式,阅读模式,编辑模式] ,部分编辑菜单内容移至视图菜单。 [或者将 3 模式项目加入查看菜单]

7. 命令行参数
新增命令行参数 -r ,
> 命令格式:`vNote.exe -r [fileName] `
>> 用阅读模式打开 md 文件
新增命令行参数 -e,
> 命令格式:`vNote.exe -e [fileName] `
>> 用编辑模式打开 md 文件

8. 增加三种模式配置功能
阅读模式:菜单栏+主显示面板+大纲
编辑模式:菜单栏+工具栏 [系统,文件,编辑,MD 格式,其他] + 大纲
笔记本模式:现有的全界面
三种模式均可独立配置界面,并保留最后配置。

三种模式的发展方向:
阅读模式:快,极致的快。可考虑有文件名传入的情况下,渲染和界面多线程同时运行。
编辑模式:速度一般,界面清爽,满足聚焦编辑的功能即可。
笔记本模式:更容易的将 md 文件,收藏,保存至笔记本,整理,待整理等 [楼主想在笔记上进一步发展,估计得考虑 Html 反向解析问题了,不需要太精准,至少能保存个大概的格式] 。

---------------------------------------------------------------------------------------------------------------------
上面 5-8 其实也是一体的,为三模式命令行准备的。

个人觉得 vNote 是个很不错的东西,速度快,界面也清爽,无论做阅读器,编辑器,都不比 Typora 差。
然楼主太喜爱笔记功能,而忽视了其他功能的应用,使得看起来有点小众。所以想出这个命令行启动
方式,不知是否能让 vNote 更大众点也更火一点。

=============================================================
看似很多建议,实际总结下来:调整和整合部分功能未知,增加已有功能的菜单,工具栏,新增命令行方式,新增
文件夹,笔记本转换,新增 md 文件添加至笔记本。
整体代码结构和改动量不大 [嗯,怎么那么像某些项目经理的屁话] 。

希望这些东西对你有用吧。

ps:想到一个最小代码量增加双栏显示的方法:
主显示区文件标签栏增加右键菜单-预览克隆,点击后,临时文件夹中生成一个临时文件(名称前加)并打开,同时生成一个克隆文件对应表,并在用户使用保存文件功能的时候,根据对应表同步临时文件。一个全局字典,几行生成临时文件的语句,搞定 O(∩_∩)O。 [临时文件修改神马的全不管]
其实,就算不为双栏预览功能,编辑器同文件分栏显示,也是大文件撰写的重要需求吧:)。
2019-01-12 18:57:04 +08:00
回复了 tamlok 创建的主题 Markdown VNote:一个更懂程序员和 Markdown 的笔记
@tamlok
a. 可否提供同一文件分别展示在分割窗口中?这个需求估计程序员会挺喜欢。(说实话,我就是偷偷打着一个文件分割 2 边,一边预览一边写的主意,O(∩_∩)O )
b. 最大化后,无法创建新的 md 文件。打开菜单默认*文件也不太适合。
c. 关于笔记的设想,设立新的文件后缀,包含笔记所需要的信息,类似 ms 的 sln 文件,这样就无需在配置中记录笔记目录(可考虑记录相对路径增加变动的兼容性)。
d. md 文件拖放到 vNote 中,自动阅读模式,不受配置中打开文件为编辑模式控制。
e. 关于实时预览,我的意思是是否可考虑部分内容(占地方比较严重的内容),提供非实时选项。比如图片,公式,当鼠标指向的时候再浮动显示。这样更加保持文本原有结构和形式,也利于插件扩展。
f. 样式变动基本需要重启程序,这点有点问题。可否优化一下。毕竟前期调优的时候,动辄几十个模板,这么切换来切换去很头疼。虽然程序启动还算快。
g. 能否去掉不建立笔记本,每次打开弹出建立笔记本模式窗口。
h. 绿色问题,按照文档所述,在程序位置建立了配置。发现软件根目录下目录较多,可考虑精简或者归类一下。比如配置放在 User 目录下。如果考虑平台兼容性,可考虑首次运行时提示(本地目录或者默认系统目录下均无配置,提示建立配置)。可能是我个人喜好问题,对默默创建一堆东西的程序,都觉得不爽。

笔记功能有点意思,比较适合代码知识库建立。不过目前我的需求度不够,等日后有机会研究了再出馊主意。
2019-01-11 23:17:00 +08:00
回复了 tamlok 创建的主题 Markdown VNote:一个更懂程序员和 Markdown 的笔记
@tamlok 个人提点小的看法,如果觉得有道理,可以考虑考虑。觉得不符合理念,当我乱说好了。

首先,优点,软件整体感觉不错,貌似主题修改刷新存在一些瑕疵,但是一旦配置完全后问题不大。
个人是把 vnote 作为 markdown 编辑器使用的,作为笔记,纯 md 还是局限了点,当然也有不少优点。
看法:
1 预览:其实,程序员也是很懒的,有预览并不一定会反感,特别前期语法不熟练的时候。可以考虑简便方案,不一定非要实时预览,也不一定非要 html 预览。建议搞个 html 预览,一个 png 预览,用保存时刷新即可。至于大小,版面什么,建议 html 预览采用一个标准的 html 文件,png 预览,则采用小的多的侧边栏形式。 既然编辑器本身已经有了分割功能,直接将标准 html 放到分割页,应该不算大改动。而 png 预览,可考虑放在工具栏目中。

2 笔记概念: 笔记本身概念不错,但是和 onenote 以及印象一类的比还是有缺陷的,不妨将其作为辅助概念。既然是使用文件夹作为笔记结构基础,不妨直接指定软件本身某个子目录为默认笔记,不要不配置每次开启都弹出要建立笔记。

3 如果作为一个 markdown 编辑器,文件菜单缺乏新建 md 文件选项。文件菜单最好添加一些编辑器类的菜单,如新建,保存,打开文件夹(比如打开了某个文件夹,就默认为笔记形式,这一个是一种笔记推广形式)

4 笔记侧边栏:建议可以隐藏,如果需要使用笔记功能,可以菜单打开。

5 绿色绿色绿色:不建议配置写在系统目录下,建议直接在本地目录下建立 User 配置。

个人使用 md 主要目的,是写点东西,比如学习笔记,readme 等等,用 md 很方便,显示出来又不难看。本身又是基于文本的形式。

作为个人项目,不建议在所见即所得上花费太多时间,简单的如标题,加粗等不破坏文本结构的增加所见即所得。图片类可考虑快速预览形式,如鼠标指向显示。其他的通过页面预览来实现。一方面保持文本本身的清洁,另一方面在语法不熟的前提下,也能快速修正语法。
个人希望能在 code,样式等方面更易扩展点。毕竟写 md 的很多人,还是对美观又追求的,这种追求也不是无限的,容易找到或者定制自己喜欢的排版即可,不然直接 txt 好了。
尽量用 md 标准语法,其他的靠插件扩展。更容易接入插件,更方便定制样式,再加上本身的笔记辅助功能,我觉得这种定位可能更好一点。

标准语法,速度快,流畅,界面简洁高配置度,插件易扩展,样式易定制,绿色,轻便,启动快。

以上个人拙见,仅供参考。
异步学习阶段,基本上用的都是标准库。
python 3.7
用的是标准库 asyncore
WhoisClient 继承于 asyncore.dispatcher.

class WhoisClient(asyncore.dispatcher):
def __init__(self, q_in, q_out):

q_in 为需要查询的 ip 队列。
q_out 为查询到的结果队列。

通过 conn_count 设置最大连接数(同时连接查询网站的连接数)
主代码就在一楼,也很简单,打开一个文件,每行一条数据读出,压入 q_in 队列。创建 WhoisClient 实例。WhoisClient 异步执行,结果压入 q_out 队列。

代码本意,超过 conn_count 个链接,等待运行完毕 1 个 WhoisClient,继续创建新的 WhoisClient。

本意以为 loop 会循环至 1 个 whoisclient 完成,实际 count=1 并未阻塞。
将 1 楼的 if 换成 while 代码达到预期。

===================================
主要是想大神帮我分析分析 asyncore 中 asyncore.loop 函数具体实现原理与规则。我看了 asyncore.py ,中间 loop 代码段,感觉应该阻塞住到 1 个 whoisclient 完成的啊。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3219 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 14ms UTC 04:47 PVG 12:47 LAX 21:47 JFK 00:47
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86