首页
归档
友情链接
关于
Search
1
在wsl2中安装archlinux
158 阅读
2
nvim番外之将配置的插件管理器更新为lazy
107 阅读
3
2018总结与2019规划
76 阅读
4
从零开始配置 vim(15)——状态栏配置
75 阅读
5
PDF标准详解(五)——图形状态
51 阅读
软件与环境配置
博客搭建
从0开始配置vim
Vim 从嫌弃到依赖
linux
Emacs
MySQL
Git与Github
AndroidStudio
cmake
读书笔记
编程
PDF 标准
从0自制解释器
qt
C/C++语言
Windows 编程
Python
Java
算法与数据结构
PE结构
Thinking
FIRE
菜谱
登录
Search
标签搜索
c++
c
学习笔记
windows
文本操作术
编辑器
NeoVim
Vim
win32
VimScript
emacs
linux
elisp
读书笔记
文本编辑器
Java
反汇编
OLEDB
数据库编程
数据结构
Masimaro
累计撰写
337
篇文章
累计收到
32
条评论
首页
栏目
软件与环境配置
博客搭建
从0开始配置vim
Vim 从嫌弃到依赖
linux
Emacs
MySQL
Git与Github
AndroidStudio
cmake
读书笔记
编程
PDF 标准
从0自制解释器
qt
C/C++语言
Windows 编程
Python
Java
算法与数据结构
PE结构
Thinking
FIRE
菜谱
页面
归档
友情链接
关于
搜索到
337
篇与
的结果
2025-07-07
读 《如何有效阅读一本书:超实用笔记读书法》
我平时也有读书的习惯,特别是在通勤的过程中。每年也能读个10几本书,但是记住的并不多,至于在实际生活中使用的知识和技巧那就寥寥无几了。曾今我也安慰过自己,读书并不需要记住,只要有个印象,后面遇到了自己查就好了。但是在最近几年我尝试将阅读的体验通过读书笔记的形式发表在博客中时,我发现读完之后脑袋一片空白,能记住的不多,很多笔记都是通过阅读其他人写的读书笔记或者摘要才能回想起来,甚至有时候读完感觉这本书讲的内容都没什么用但是一旦读到其他人写的读书笔记才发现原来这本书的内容这么有用,自己当初怎么没有感觉到呢。总之读书过程中有种种问题,所以我找来这本书看看如何能改善这种情况。我希望配合这本书中讲的内容以及自己平时读书的习惯形成一种读书方式或者叫读书方法,来尽量吸收足够多的内容供自己所用。书中提倡使用纸质的笔记本来记录读书生活,但是现在都推崇无纸化、数字化了,所以我结合手机应用和自己的博客来实践书中的理论方法如何选择书籍读书第一步就是选择书籍,如何选择呢?书中提到可以可以使用笔记本在平时阅读报纸的广告或者书评时记录下来想读的书,或者如果想了解某一方面的内容就可以以 “我想阅读xx方面的书”在浏览器中进行搜索,根据搜索结果来进行选择。另外,在阅读某书的过程中,书中可能会引用其他书籍的内容,这个时候作者一般会直接给出书名或者通过注释和参考链接的形式给出,我们可以记录下来。根据现在的发展,我可以使用电子版的购书清单,至于书籍的来源,我主要来源自下面几个地方豆瓣排行榜一些推荐书籍的公众号和b站的up主阅读某书时书中列出的其他书籍根据AI搜索的结果来记录书籍有时候这些来源在我们脑海中仅仅是一闪而过,我们在捕捉到这些书籍之后将它记录下来以免遗忘。那么该如何记录呢?本书给出了一个范例书名作者出版社备注博格论指数基金约翰博格(刘寅龙,乔明邦译)中国科学技术出版社ISBN:9787523610299因为市面上可能有同名的书,或者有好几版的,或者同一本书有不同的译版,仅仅靠书名是无法区分的,所以这里列出了关键的信息,备注里面可以列出书籍的 ISBN号,它是书籍的身份证号,根据这个号就可以直接找到想要的书。如果没有这个编号,根据前面几个项目,也可以唯一确定一本书。如何购买书籍书中提到我们可以在网上购买或者去实体书店,作者推荐去实体书店,因为实体书店购书印象更加深刻。除了实体店我们可以在网络上购买或者在微信读书等app上购买,甚至zlibrary上下载电子版。现在我个人的习惯是第一遍读的书在微信读书上或者通过下载zlibrary上的资源再导入到微信读书。如果觉得值得读第二遍或者值得收藏,我会在网络上买一本纸质的书收藏或者再读如何做读书笔记书中介绍的方法是“摘抄+感悟”的方式。在阅读的过程中如果觉得哪句话触动了你,那么就将它记录下来,并在旁边写上感悟。为了写出精练而深刻的读书笔记,你应该在读完一本书以后认真回想需要摘抄哪一页哪一行,思考怎样撰写读书笔记,然后严格地筛选需要摘抄的内容,尽量提炼自己的感想,争取用最短的语句表达深刻的含义。最终在回顾自己的阅读经历时并不需要每个划线的部分都摘抄到笔记本上,因为有些内容可能当初有感悟但是后面发现自己的感悟是错误,并且作者在后面也解释的更为详细。或者有些内容在后面又更精妙的描述和解释,又或者你会发现它必须与前面或者后面几点结合起来一起看才有用。在回顾的过程中不断的提炼自己的观点并且尝试输出,知识不知不觉的就输入到你的脑袋中,并且完成了与作者的一次沟通。对于微信读书来说,我们可以划线并且在划线处写出自己的感悟,最后写读书笔记的时候导出作为参考。我一般用到三种划线:黄色的重点标注:表示这段我不太理解。后续在写读书笔记的时候需要结合全书的内容或者AI工具来深入了解红色的标记:我有一定感悟的内容波浪线:我觉得比较重要的内容这些都是日后写读书笔记重要素材。活用根据书籍不同的内容,我们活用的方式可能不同。学科类的工具书,例如相关的专业书籍可能直接在工作中就用上了,而一些小说、哲学、心理学等文科方面的书可能只能通过读书的笔记方式进行输出。这里我想说说后面我写读书笔记的一些思路针对故事类的书籍,这里一般是小说或者历史故事、纪实文学等偏故事性的书籍。首先就是在尽量不剧透关键情节的情况下描述以下故事。然后列举出我划线了觉得写得好得句子并配上我的感悟。对于非虚构类的书籍,我想分为工具类书籍和理论性的书籍工具类的书籍就是书中的知识和办法我能直接拿来用的,就像本书这样。这种书我结合书中的内容和自己的情况想办法制作一套自己的实践路线。书中的一些重点内容我也会记录并且给出自己的感悟对于理论性的书籍可能暂时没办法实践,例如 《钢铁,病菌与枪炮》、《人类简史》这样的书籍,书中讨论的我是没办法验证和实践的。这种需要记录作者的主要观点以及是如何论证的。每章又在讲解什么内容,有时候作者会有一些发人深省的句子或者观点,这些也值得记录并给出自己的感悟。总结这本书是一本介绍读书方法的书,作者主要通过介绍做读书笔记的方式来进行书籍的阅读。对我来说它是一本帮我审视自己读书习惯的书籍,以及教我如何写读书笔记的方法论的书
2025年07月07日
1 阅读
0 评论
0 点赞
2025-07-05
读 《一本书读懂财报》
这是我读财报相关书籍的第二本。在上一本 《用生活常识就能看懂财报》的书中,对上市公司的财报有了一个初步的认识。知道财报主要由三张表构成,这三张表是一个整体,要用立体的眼光看待这三张表。但是它毕竟是一本入门的书,对于一些专业的分析方式和财报条目没有介绍的很细,在入门之后我需要一本稍微偏专业的书籍再来详细了解一下财报每个栏目的构成以及掌握一些财报分析的方法。《一本书读懂财报》就是我此时需要阅读的书籍在会计的眼中,企业主要从事三种活动:经营活动,也就是做买卖。也就是生产产品、销售产品、回收账款投资活动,为了日后能扩大产能,开展新业务、设计新产品所进行的投入融资活动,也就是搞钱,除了经营活动以外的方式来搞钱。资产负债表除了赚钱之外,企业还有一个最基本的要求,就是保证股东投入的本金不会遭遇损失。投入的本金现在都变成了什么,它们的价值如何是不是还保留着原来的价值。描述这些信息的表就是资产负债表。资产负债表被分成两个部分,左边表示资产、右边表示两个部分:负债和股东权益。左边的资产是按照流动性从高到低,或者说变现难易度从易到难的顺序依次排列,分别是:货币资金:就是可以立马变成钱的资产,包括企业柜上的现金、银行账户的存款、其他货币资金应收账款:核算企业通过销货商品或者提供劳务等经营活动应收取的账款。换句话说就是客户欠公司的钱预付账款:企业按照合同规定预付的款项,它也是资产的一种,存在预付款项表明企业未来有向供货商要求供货的权力其他应收款:企业除存出保证金、买入返售金融资产、应收票据、应收款项、预付款项、应收股利、应收利息、应收代位追偿款、应收分保账款、应收分保合同准备金、长期应收款等以外的其他各种应收及暂付款项。存货:存货主要有生产产品所需的原材料、生产出来的产品,在生产过程或提供劳务过程中耗用的材料和物料等其他流动资产以上就是流动资产包含的内容,所谓的流动资产就是在一个经营循环内或者一年以内能变现成现金的资产,其余的就是非流动资产。非流动资产主要包括以下几个内容:长期股权投资:长期股权投资只包括对被投资企业拥有控制权、共同控制权或能够施加重大影响的投资固定资产:指同时具有下列特征的有形资产:(1)为生产商品、提供劳务、出租或经营管理而持有的;(2)使用寿命超过一个会计年度。无形资产:无形资产主要包括专利权、非专利技术、商标权、著作权、土地使用权、特许权等长期待摊费用:它最初的确是一笔资产,但随着企业的正常运营和时间的流逝,它最终变成了一笔费用,这就叫待摊费用。比如预付的房租、预付的广告费用,甚至开办一家企业所需要的开办费,都是待摊费用其他非流动资产费用和资产的共同特点就是都是需要花钱的项目。但是有些花销能用于日后的生产,这笔开销就是资产。有些钱花出去就消失了或者慢慢消失了,这就是费用。这些资产的价值是如何计算的呢?一般资产有两个价值买入时的价格这个叫做历史成本和现在市场上的价格。那么在计算资产价值时采用哪个数字呢?如果这个资产升值,就当作没看见;如果资产的价值减小了,就把这个减值记下来。因为资产计价体系是一个历史成本的体系,一定要在历史成本的基础上扣除这个资产的减值。除了金融资产与投资性房地产之外,大多数资产都是按照历史成本来计价的。我们再来看看负债这一项,它主要包括流动负债和非流动负债,流动负债主要是一年以内需要支付的款项,流动负债包含以下几个内容短期借款:企业向银行或其他金融机构等借入的期限在一年以下(含一年)的各种借款应付账款:欠供应商的货款预收款项:收了客户的钱但是没有给客户供货其他应付款:未向金融机构或者银行进行的借款其他:应付职工薪酬、应付税款等非流动负债包含以下几个内容:长期借款:企业向银行或其他金融机构借入的期限在一年以上(不含一年)的各项借款。应付债券:一般发行了企业债券的时候会存在这个项目,一般在中国很少有企业会发行债券长期应付款:长期应付款会跟一种交易有关—租赁其他非流动负债因为股东是不能随意撤资的,所以股东权益就是一个永远不同偿还的项目。股东权益是公司总资产中扣除负债的部分,也就说 股东权益 = 资产 - 负债。它主要包含下面几个部分:股本: 在中国,股本必须等于注册资本,或者更准确地说,是实缴到位的注册资本。资本公积: 如果股东实际投入的资金比注册资本多,那多出来的这块,就是所谓的资本公积。不是所有的公司都有资本公积、上市公司一定有。假设一家上市公司发行票面值为1元的股票,共计一亿股,价值发行价为每股20元,那么公司的股本只有1亿,但是会多募集19亿的资金,这多出来的就是资本公积。如果是非上市公司,有一种情况也能产生资本公积。假设小张打算投资小黄的公司,小黄的公司小黄自己当初投入了100万的资金。为了与小黄取得同样的股权,小张要投资多少呢?特别是公司经过多年经营资产已经增长了多倍的情况下,小张可能要投入500万才能获取一半的股权。会计门将小张这500万中的100万作为股本,也就是股本与小黄齐平,而多余的400万作为资本公积。所以 《用生活常识就能看懂财报》书中将它形象的称之为企业不劳而获的所得盈余公积:法律不让企业分配的一部分利润,中国的公司法规定,一家公司有了盈利之后,必须留存至少10%作为盈余公积。未分配利润:未分配利润:企业留待以后年度分配或待分配的利润。资产负债表左边告诉我们投入的钱都变成了什么。右边告诉我们钱都从哪来。利润表利润表表示我们投入的资产有没有赚到钱。利润表中主要有这么几个概念营业收入:企业卖出产品所获得的收益就是营业收入营业成本:卖出的产品则是营业成本营业收入 - 营业成本 = 毛利润税金及附加:指企业经营活动发生的消费税、城市维护建设税、资源税、教育费附加及房产税、土地使用税、车船使用税、印花税等相关税费,这个税并不是全部的税费。这些税不管有没有卖出产品赚到钱,只要企业在正常运转就需要交销售费用:在生产和销售过程中产生的费用就是销售费用。比如生产产品后需要存放的仓库费用、中间的运输费、广告费等等管理费用:管理费用就是与企业的管理环节有关的一切费用研发费用:财务费用:企业会为长期借款和短期借款付出一定的利息,也会因在银行存款而获得一部分利息,这些利息都被记录在这里。也就是说,利润表上的财务费用,实际上是借款利息减去存款利息的净额投资收益:投资收益:企业(金融)债券投资持有期间取得的利息收入。对联营企业和合营企业的投资收益公允价值变动收益和资产减值损失:它们都是公司资产价格变化引起的收益的增减资产处置收益:主要用来核算固定资产、无形资产等出于出售、转让等原因,产生的处置利得或损失。存在这一项往往表明公司在处理非流动资产营业利润:企业利润的主要来源,根据上面的描述,营业收入-营业成本-税金及附加-销售费用-管理费用-财务费用+资产减值损失+公允价值变动收益+投资收益+资产处置收益=企业的营业利润。营业外利润:反映企业发生的除营业利润以外的收益营业外支出:反映企业发生的除营业利润以外的支出利润总额 = 营业利润 + 营业外利润 - 营业外支出所得税费: 利润所需要缴纳的税费,这里的利润是按照税法规定的利润计算方式,而不是这里提到的利润总额净利润 = 利润总额 - 所得税费需要注意的是,虽然利润表反应企业赚了多少钱,但是有收入不等于收到现金,收到了钱却可能没有收入,有费用也不等于要付出现金,付出了现金不一定会产生费用。有收入不一定收到现金这个很好理解,有时候产品卖出去了,客户那边可能会拖欠一部分钱也就是采取赊账。收到了钱却可能没收入,企业收到了客户的钱但是还没有给客户发货。有费用也不等于要付出现金,有时候会产生一些设备的折旧费用,固定资产在不断的损耗。付出了现金也不一定会产生费用,企业预缴了下一年的房租,换回了这所房子在下一年的使用权,得到了一项资产,却没有在当下产生费用。用收入减去所有的成本费用等于利润,而用收到的所有现金减去付出的所有现金就得到了一个叫“现金流”的概念,因此,以上四条论述加在一起就帮助我们推断出一条真理:利润不等同于现金流。所以有时候明明企业赚了很多利润,但是最终确没有钱。从经营活动来看这几张报表上面介绍了资产负债表和利润表,它们并不是单一的孤立的,死板的一些数字。而是鲜活的立体的,准确的描述了企业的经营活动。我们分析财报就是要通过财报还原企业的经营步骤和经营状况。书中举了一个企业的例子来帮助我们进一步加深对财务报表的理解。一家企业在经营过程中涉及了13种经济活动设立公司,股东出资 3200万作为股本。此时资产负债表种左侧的资产一栏多出了3200万的货币资金。右侧股东权益多了3200万的股东股本。之后向银行贷款了5100万,此时左侧的现金资产变为 8300万,右侧多了长期借款 5100万资金到位之后,它花费5700万购置厂房、设备、车辆以及办公用品,此时流动现金变为 2600万,而多出来了 5700万的固定资产之后花费了 150万购买了土地的使用权,在中国土地使用权被算作无形资产接下来就是采购原材料并且开始生成产品了,假设它采购了2400万的原材料,但是只支付了供应商1600万,此时它的应付账款多了欠供应商的800万。而存货多出了2400万,并且现金减少1600万在使用原材料的进行生产的过程中,它用掉了所有的原材料,并且为生产支付了包含水电、工资等在内的1200万费用。那么此时生产产品的价值为 3600万,而产品和原材料都属于存货,也就说此时公司的存货变为3600万生产出产品之后接下来要做的就是将产品卖出去。于是这家公司和客户签订了一些合同。这些产品卖出了4300万,但是企业并没有把存货全部卖光,而是卖出了价值3100万的货物,同时客户只支付了3000万,欠款1300万。此时我们失去了这部分价值3100万的存货,所以此时存货为500万。这笔交易为我们带来了3000万的现金收入。毛利润 = 营业收入 - 营业成本,所以它的毛利润为1200万,因为公司的资产都属于股东,所以说这笔钱可以看作是股东放到公司用作未来经营的一笔追加的投资,所以它被放到了股东权益的未分配利润中为了明年的生产,所以公司又采购了150万的原材料,但是供应商承诺明年会供货。所以此时货币资金减少了150万。虽然货物没有收到,但是公司保留了明年向供应商收货的权力,所以此时应该有价值150万的预付货款假设这家公司花了50万研发出了增加生产效率或者减少污染的新技术。首先货币资金应该减少50万。技术属于无形资产,此时这项技术是否应该记录在无形资产中呢?答案是否定的。首先,会计准则规定,企业的研究支出应被记录在管理费用当中;其次,产品开发阶段的投入,如果满足一定条件的话,可以被记录在无形资产当中。具体而言,研究是指技术的研究;而产品的开发是指技术研究成功后,企业为了将技术应用到产品制造中,设计、制作模具等所产生的花费。再次,会计准则又说了:技术研究成功之后,用于申请专利的这部分费用可以被记入无形资产。也就是说,如果这家公司花了50万元去研究技术、5000元去申请专利,那么,只有5000元能被记入它的无形资产当中。为什么这么规定呢?因为技术研发阶段不确定将来是否能成功,成功之后也不确定是否真的能带来商业利益。所以只有真正能用于生产也就是申请了专利的技术才被当作无形资产。而没有成熟的或者在研发中的技术应该被算在管理费用中。所以这里我们将50万记为管理费用。多了一项管理费用,所以此时利润应该要再减去50万这家公司支付了150万元的销售人员的工资和250万元销售部门的开支。此时利润需要再减去 400万。支出这部分钱会导致现金减少400万这家公司为长期借款付出了130万的利息,也就是最终未分配利润需要减少130万,并且货币资金减少130万这家公司还上缴了100万的税费。所以货币资金减少100万,未分配利润再次减少100万最后企业决定从盈利的钱中拿出100万作为现金分红,此时公司的货币资金再减少100万,同时未分配利润减少100万根据上面列出的,我们可以计算出下面的几项数据:货币资金 = 初始3,200 + 贷款5,100 - 购固定资产5,700 - 购地150 - 付货款1,600 - 生产费1,200 + 销售回款3,000 - 预付150 - 研发50 - 销售费400 - 利息130 - 税费100 - 分红100 = 1,720万未分配利润 = 营业收入 4300 - 营业成本 3100 - 销售费用 400 - 管理费 50 - 利息 130 - 税费 100 - 分红 100 = 420最终的资产负债表 (单位:万)资产本期金额负债和股东权益本期金额流动资产 流动负债: 货币资金1720短期借款 应收账款1300应付账款800预付款项150预收款项 其他应收款 其他应付款 存货500其他 其他流动资产 非流动负债: 非流动资产 长期借款5100长期股权投资 应付债券 固定资产5700长期应付款 无形资产150其他非流动负债 长期待摊费用 股东权益: 其他非流动资产 股本3200 资本公积 盈余公积 未分配利润420资产总计9520负债和股东权益总计9520上述营业活动会得到如下的利润表(单位:万)项目本期金额一、营业收入4300减:营业成本3100税金及附加 销售费用400管理费用50研发费用 财务费用130加:投资收益(损失以“-”号填列) 其中:对联企业和合营企业的投资收益 公允价值变动收益(损失以“-”号填列) 资产减值损失(损失以“-”号填列) 资产处置收益(损失以“-”号填列) 二、营业利润(亏损以“-”号填列)620加:营业外收入 减:营业外支出 三、利润总额((亏损以“-”号填列))620减:所得税费100四、净利润(亏损以“-”号填列)520我们看到,企业分红不体现在利润表中的任何一项。在扣除分红之前,可以看出净利润与未分配利润的关系。也就是说在经营活动中,赚取的利润都变成了资产负债表中的某一项。因此在分析财务报表时我们需要几张表一起来看。现金流量表现金流量表主要描述现金的流向,也就是企业收到钱和付出钱的情况。只要一个人会记流水账,也就会做现金流量表,因为现金流量表本身就是一张流水账单。现金流量表主要分为经营活动的现金流量、投资活动的现金流量、和融资活动的现金流量。经营活动,是指企业投资活动和筹资活动以外的所有交易和事项。投资活动,是指企业长期资产的购建和不包括在现金等价物范围内的投资及其处置活动。筹资活动,是指导致企业资本及债务规模和构成发生变化的活动。前面说,有收入不等于收到现金,收到了钱却可能没有收入,有费用也不等于要付出现金,付出了现金不一定会产生费用。也就是通过资产负债表或者利润表无法直观的表示公司到底收到了多少钱或者花掉了多少钱,所以需要第三张表来描述真正进出的现金。现金流量表向我们展示了资产负债表上货币资金增减变化的原因。根据上面企业经营的例子,我们可以得到如下的现金流量表:项目本期金额一、经营活动产生的现金流: 销售产品、提供劳务收到的现金3000收到的税费返还 收到其他与经营活动有关的现金 经营活动流入现金小计3000购买商品、接受劳务支付的现金1750支付给职工以及为职工支付的现金1200支付的各项税费100支付其他与经营活动有关的现金450经营活动流出现金小计3500经营活动产生的现金流净额-500二、投资活动产生的现金流: 收回投资产生的现金 取得投资收益收到的现金 处置固定资产、无形资产和其他长期资产收回的现金净额 处置子公司和其他营业单位收到的现金净额 收到其他与投资活动有关的现金 投资活动流入现金小计 构建固定资产、无形资产和其他资产支付的现金5850投资支付的现金 取得子公司及其他营业单位支付的现金净额 支付其他与投资活动有关的现金净额 投资活动现金流出小计5850投资活动产生的现金流净额-5850三、筹资活动产生的现金流: 吸收投资产生的现金3200取得借款收到的现金5100收到其他与筹资活动有关的现金 筹资活动现金流入小计8300偿还债务支付的现金 分配股利、利润或偿付利息支付的现金230支付其他与筹款活动有关的现金 筹款活动现金流出小计230筹资活动产生的现金流净额8070我们来从上面列出的公司经营活动来看各个现金流如何变化首先是股东出资3200万,这部分被记录在 吸收投资产生的现金 中向银行贷款 5100万,这部分被记录在 取得借款收到的现金 中购置厂房的 5700万被记录在 构建固定资产、无形资产和其他资产支付的现金 中150万购买的土地使用权同样属于无形资产,因此 构建固定资产、无形资产和其他资产支付的现金 会增加 150万变为 5850万采购原材料价值 2400万,但是实际只支付了 1600万,所以这里只记录 1600万到 购买商品、接受劳务支付的现金 中生产产品过程中,支付了 1200万的水电、和员工工资。这部分被记录在 支付给职工以及为职工支付的现金 这一项中客户购买了价值 4300万的产品,但是只支付了 3000 万,所以在 销售产品、提供劳务收到的现金 这一项中只记录 3000万为了明年的生产,所以公司又采购了150万的原材料,这笔钱被记录在 购买商品、接受劳务支付的现金 中,此时这一项总金额变为 1750万50万的研发费用应该算作管理费,它被记录在 支付其他与经营活动有关的现金 中总共为销售部分和销售员工支付了400万的金额,这部分被记录在 支付其他与经营活动有关的现金,此时这一项变为 450万支付的 130万的利息,被记录在 分配股利、利润或偿付利息支付的现金 中上缴的 100万税费算作 支付的各项税费, 被记录在这一项中公司的分红 100万,也被记录在 分配股利、利润或偿付利息支付的现金。此时该项总金额为 230万通过现金流量表计算得到,筹资活动现金流净额(8070) + 投资活动的净额(-5850) + 经营活动的现金流净额(-500) 最终得到现金剩余 1720。这个1720 正好是资产负债表中的 货币资金 。也就是说这三张表是互相依靠、互相应证的关系。通过现金流量表还可以看到,虽然公司经营过程中产生了利润,并且利润还比较客观但它经营过程中产生的现金流量是负的,也即是说经营活动无法养活它自己,它还需要靠着外部筹资才能活下去,公司的造血能力不足一旦筹资受挫将来可能面临资金链断裂的风险。所以光看资产负债表或者利润表是无法判断企业是否能长久的经营下去。我们要结合三张表一起看财务分析的一些指标和方法同型分析利润表中,我们使所有的项目都除以营业收入,再乘以100%,就能获得这些项目在营业收入中的占比。例如上面的企业的例子,它的净利润是 520 万,占营业收入 4300 万的 12%。 计算每一项资产在总资产中的占比,也就获得了对资产负债表进行同型分析的结果。例如我们计算固定资产 5700万占总资产 9520 的比例为 60%这一步是在进行同型分析。有了同型分析的数据,我们将不同时期的数据进行对比,这就是趋势分析。如果将这些数据与竞争对手、行业龙头或者行业的平均水平进行对比,这就是进行对比分析。分析企业的盈利能力分析企业的盈利能力有这么几个指标:毛利率:毛利润 / 营业收入净利润率:净利润 / 营业收入另外无论企业的经营模式怎样,都可以抽象为从现金开始再到现金的循环,也就是投入-->做生意-->获得回报的过程。我们可以通过一些周转率来衡量企业的赚钱效率。周转率就像餐厅的翻台率一样。餐厅每服务一桌的客人就可以赚一桌的钱,桌子就是餐厅的资产。在同样的时间里,总资产的周转率越高,完成上述循环的次数越多,赚的钱也就越多。因此,总资产的周转率是一个与效率有关的概念。用净利润除以总资产,也便得到了一个新的比率—总资产报酬率。$$ \frac{营业收入}{总资产} * \frac{净利润}{营业收入} = \frac{净利润}{总资产} = 总资产报酬率 $$总资产报酬率:又称总资产利润率、总资产回报率、资产总额利润率,英文缩写ROA,用以评价企业运用全部资产的总体获利能力。净资产报酬率,又称为净资产收益率、净资产利润率等,是净利润与平均股东权益的百分比。净资产 = 资产 - 负债。净资产收益率越高代表股东投资的收益越高$$ \frac{营业收入}{净资产} * \frac{净利润}{营业收入} = \frac{净利润}{净资产} = 净资产报酬率 $$分析企业的运营能力企业的投资取决于 效率和效益的乘积。上面是企业的效益也就是投入资产获得回报的能力。用营业收入除以某项资产就得到该资产的周转率。总资产周转率:企业在一定时期营业收入同平均资产总额(可以用期初与期末资产总额之和除以2得到)的比率应收账款周转率:在一定时期内(通常为一年)应收账款转化为现金的平均次数。应收账款周转率是营业收入除以平均应收账款(可以用年初与年末应收账款之和除以2得到)的比值,它说明应收账款流动的速度流动资产周转率:营业收入与流动资产平均余额的比率,它反映的是全部流动资产的利用效率。固定资产周转率:企业营业收入与固定资产平均净值的比率。它是反映企业固定资产周转情况,从而衡量固定资产利用效率的一项指标。存货周转率:企业一定时期营业成本(也可以用营业收入)与平均存货余额的比率。用于反映存货的周转速度例如我们用4300万的营业收入除以500万的存货得到存货周转率为 8.6。如果我们以一年的天数 360天除以存货周转率得到存货的周转周期为 41.86 天。也就是每 41.86天周转一次营运能力:企业的经营运行能力,即企业运用各项资产以赚取利润的能力。企业营运能力的财务分析比率为各种资产的周转率,如存货周转率、应收账款周转率、流动资产周转率和总资产周转率等,以及相对应的周转周期。企业一般会走效率路线或者差异化路线。企业的盈利 = 效率 * 效益。效率路线就是多做几次生意,减少每次生意的利润。像餐厅或者物流、零售等企业。有的企业会走效益路线,也就是让每次生意的利润最大化,这可能会带来效率的减慢。分析公司的偿债能力用流动资产除以流动负债便获得了流动比率,这个比值越高,说明企业的短期偿债能力越强。前面在介绍资产负债表时提到,存货也属于流动资产,但是相比前几项,存货不是那么容易变成现金的,一旦资金链面临断裂的风险,存货势必也要降价出售它的价值可能也达不到表中给出的价值。当一家公司的流动比率为1,那么它的营运资金一定是不足的。所以我们需要一个新的指标来衡量偿债能力。用流动资产减去存货的差除以流动负债,就得到了速动比率,并用它来衡量企业的短期偿债能力。短期偿债能力可以用流动比率或者速动比例来衡量。长期偿债能力可以依靠资产负债率来衡量,用总负债除以总资产得到资产负债率。什么样的公司才算是好公司对于投资来说能持续给投资者赚钱的公司就是好公司,这句话有两个层面的意思,第一是能给投资者或者说股东赚钱,第二个是能持续。衡量一个股东的投资回报有很多个xx回报率。用净利润除以总资产就得到总资产回报率。用净利润除以净资产就得到净资产回报率。用税后净营业利润除以投资资本就能得到投资资本回报率。那么投资资本回报率与总资产回报率是不是一回事呢?它们并不是一回事,二者也不相等。总资产回报率的分母包含了股东权益和借债,但是公司的利润都是股东的,分子属于股东但是分母却是股东权限 + 负债。二者有点不匹配。而且银行借钱给企业不是为了股东权益而是为了收利息,所以搞出来了一个投资资本回报率。投资资本回报率的分子是税后的利润 + 利息,也就是净利润加上了付出的利息,这个部分就是税后净营业利润。而分母则是投资资本也就是总资产或者说负债加上股东权益。这个回报率考虑了债权人和股权人的投资回报。如何衡量投资资本回报是否合格呢?投资资本回报不光要考虑是否有回报还要考虑回报是否合理。这里涉及到一个机会成本的因素,也就是说投资者投资公司肯定是希望赚的比别的公司要多才行,如果不如别的公司那么投资者直接投别的公司就好了。这个机会成本就是投资资本成本。用投资资本回报率减去投资资本成本如果大于0,表示这笔投资是合格的,也是值得的。如何计算投资资本的成本呢?投资资本主要分为股东和债权人的投资,股东投资希望企业能盈利,而债权人投资则希望拿到利息。盈利方面我们可以以行业的平均盈利水平来计算,而债权人的投资则可以用这笔借债的利息来衡量,最终通过二者的投入比例算一个平均值作为投资资本成本。假设还是上面那家公司,股东投入 3200万,借银行5100万,股权占比 38%, 借贷占 62% 假设借贷利息是7%,行业平均盈利水平是12%。那么可以计算得到这笔投资的加权投资资本成本为 38% 12% + 62% 7% = 8.9%。该企业的投资资本回报率为 620 / 9520 = 6.5%。但是上面的计算有一个小小的瑕疵。因为缴税是根据利润来进行的,而利润需要扣除还银行的利息,支付利息可以减少一家企业的税前利润,从而进一步减少它所要缴纳的所得税。利息越高,所得税越少,这被称为“利息的税盾效应。因此企业要支付给银行的利息被分为如下两个部分:和税率相等的部分由政府承担,而剩余的部分由企业承担。因此这家公司的投资资本成本应该是 38% 12% + 62% 7% * (1 - 7%) = 8.59%一家好的企业最起码是一家赚钱的企业。什么是赚钱?从短期来说,赚钱是有正的经济利润;从长期来说,赚钱是为股东创造价值。如何判断一家企业是否能长期存在呢?首先它的现金流要充足,现金流可以从现金流量表中进行分析。现金流分为经营活动的现金流、投资活动的现金流和融资活动的现金流。每个现金流都有正有负,总共可以有8种情况序号经营活动的现金流投资活动的现金流融资活动的现金流1+++2++-3+-+4+--5-++6-+-7--+8---该类型的企业经营活动现金流为正,表示它光靠做生意就能源源不断的产生现金流。投资活动的现金收入一般来源于处置资产或者有投资的收益,这种企业一般不缺钱不太可能会处置资产,因此这部分的现金来源应该是投资收益。融资活动的现金流也是正,表明它正在进行融资可能要扩大生产,需要进行投资。如果它没有投资计划但是又融到一大笔钱,此时就要小心了。第二类企业与第一类企业唯一的不同是它的融资活动的现金流是负的,此时它可能正在偿还银行欠款或者进行分红。这是在健康发展的企业中常见的情况这种企业通常由第一类企业转换而来,第一类企业融到了大笔钱,同时也计划进行投资,一旦投资开始了那么此时它的投资活动的现金流就会变成负的。营业可以养活自己、又融到一大笔钱打算大干一场,似乎它是一家有野心也正常经营的企业。但是需要警惕投资的风险。不光是要警惕投资的目标是否赚钱而且要警惕那种需要长时间大量的投入会掏空企业的现金。这种企业经营赚了钱,但是它同时在进行投资、还钱以及分红的活动。那么这种企业要看账上是否留有足够的钱应对接下来一年的营业活动这种企业经营活动没赚到钱,主要靠投资和融资来维持,是比较危险的企业,投资活动收益有可能是变卖固定资产的来的,一旦后续无法融资那么它就会变成第六种企业这种情况的公司不光无法赚到钱,同时也在变卖固定资产,同时还在还债,日子十分难过这种企业一般是处于创业阶段或者衰退阶段。初创企业刚刚开始营业还无法赚到钱,并且还有融资用于投资扩大生产。如果将来能转亏为盈,那么将会越来越好。至于衰退期的企业目前在市场上已经没有优势,营业状况不太好,同时它们在扩大投资并且希望有所改变,同时又有借债。一旦投资有误,那么将陷入深渊。这种企业是最可怕的,它只有出去的钱没有进来的钱,如果短时间内无法改善那么就注定倒闭,这种一般是第四种企业变化来的,第四种企业一旦经营不善就会变成第八种不同状态的企业处在不同的发展阶段,具有不同的风险特性和风险来源。这就是现金流量表告知我们的关于公司风险的信息
2025年07月05日
2 阅读
0 评论
0 点赞
2025-07-01
Emacs 折腾日记(二十七)——终端管理
Emacs 号称一个伪装成文本编辑器的操作系统,你几乎可以在Emacs中干任何事情。在Emacs中运行终端自然是小菜一碟。Emacs中有许多其他类型的shell,例如 eshell、term、vetrmterm 终端其中 term 是Emacs中自带的shell,它最终是调用系统中安装的其他shell环境。我们可以直接使用 M-x 调用 term命令,来选择启用一个系统终端。我们可以在这个终端上进行一些操作。但是还有一些执行细节需要优化。控制term窗口的显示首先我们看到在启动终端之后,它占用了一整个窗口,这对于我来说并不友好。一般情况下我只是希望在编写代码之后临时的调用终端执行一些命令,例如编译或者运行代码之类的操作。因此我希望它可以放到下方并且可以快速的关闭退出我们可以通过 shackle 插件来控制窗口的行为。主要有:方向、大小和弹出方式等等。配置 shackle 插件最重要的是变量 shackle-rules 。它的构成如下: CONDITION(:regexp) :select :inhibit-window-quit :size+:align|:other :same|:popupCONDITION 是相关的条件,表示我们要定义哪一类窗口的行为。这个条件可以是正则表达式,可以是字符串,可以是modeselect 控制弹出窗口后是否选中size: 0到1间的数字,控制窗口宽度和高度占整个窗口区域的百分比inhibit-window-quit: 按q退出时不删除这个缓冲区align: 弹出窗口的对齐方式,取值有 ’left, ‘right, ‘below, ‘aboveother: 如果当前 frame 有多个 window,是否复用另外一个 windowpopup: 弹出一个新的 window,而不是复用当前 windowsame: 不弹出 window,复用当前 windowignore: 禁止显示该窗口我们当前的配置可以这么写(use-package shackle :ensure t :hook (after-init . shackle-mode) :custom (shackle-default-size 0.5) (shackle-default-alignment 'below) :config (setq shackle-rules '((term-mode :regexp t :select t :size 0.3 :align t :popup t :quit t))))这里表示 term 窗口在弹出之后占据下方30%的区域进行显示,并且退出后直接关闭窗口。这样我们可以看到使用 term 之后窗口显示在下方,并且像普通buffer那样可以使用vim的命令 :q 来退出快速切换显示和隐藏状态对于终端这种临时窗口,我们一般不会让它长时间驻留在buffer中。想要的时候随时调用、不要的时候随时关闭或者隐藏。对于这种快速打开关闭的需求,我们可以使用 popper 插件。它通过赋予任意缓冲区“弹出”状态,让这些缓冲区不打扰你的核心工作区,只需一键即可调用或隐藏,完美适用于那些需要即时访问但又希望不影响视线的场景。popper-toggle、popper-cycle 和 popper-toggle-type 是三个核心命令。popper-toggle: 快速切换最新一个弹出缓冲区的显示/隐藏状态popper-cycle: 循环切换所有标记为弹出的缓冲区popper-toggle-type: 切换特定类型缓冲区的显示/隐藏状态另外它需要通过 popper-reference-buffers 来定义特定类型的缓冲区,插件会将符合这些规则的缓冲区标记为 POP并且进行管理。popper-reference-buffers 支持正则表达式来匹配缓冲区名。我们可以使用下面简单的配置(use-package popper :ensure t :hook (after-init . popper-mode) :init (setq popper-reference-buffers '("\\*Messages\\*" "\\*Async Shell Command\\*" term-mode help-mode helpful-mode "^\\*eshell.*\\*$" eshell-mode "^\\*shell.*\\*$" shell-mode ("\\*corfu\\*" . hide))) :config (my-leader-def "/" #'popper-toggle "t" #'popper-cycle "T" #'popper-toggle-type) )最终它的效果如下:eshelleshell 与 term 最大的不同在于eshell 是Emacs 自己通过elisp实现的一个仿制的终端,而 term 是真实的系统终端,它调用系统中的shell环境。目前来说使用 term 来打开系统终端能应付大部分的情况,但是学习Emacs,eshell似乎是一个绕不开的坎,并且eshell配置好了,同样好用。eshell里面实现了普通shell里面常用的命令,例如 ls、cd、cp 等等。同时也可以执行elisp代码,例如可以通过find-file 打开一个文件。或者输入简单的算术表达式像 (+ 1 1) 来进行一些数学计算。封装shell命令到eshelleshell里面实现了常见的shell 命令,但是我们在后续会经常性的安装一些好用的工具,来简化我们的工作流程,所以在使用eshell的第一件事就是将shell命令封装到eshell这里我以 autojump 为例。autojump 是一个快速跳转到指定目录的工具,当你通过cd进入过的目录会被记录下来,下一次通过 autojump 不再需要输入全路径,而是直接模糊匹配进行跳转,例如我们多次进入了 ~/.emacs.d/lisp 目录,下一次不管当前目录在哪里只需要输入 j lisp 即可进入。我们希望复刻这种行为到eshell中。定义eshell 中的命令可以通过定义一个以 eshell/ 开头的函数来实现,函数名后面的名称就是可以输入eshell的命令名称,所以这里我们要定义一个名为 eshell/j 的函数。同理,我们想要使用eshll中定义好的命令例如 cd ,可以直接调用 eshell/cd 函数。我们还是使用 use-package 来管理关于 eshell 的配置,最终实现的代码如下:(use-package eshell :ensure nil :config (defun eshell/j (&rest args) (let* ((argstr (mapconcat 'identity args " ")) (target (shell-command-to-string (concat "autojump " argstr)))) (setq target (replace-regexp-in-string "\n" "" target)) (if (file-directory-p target) (eshell/cd target) (error "目录不存在: %s" target)))))上述代码主要通过 autojump 命令来根据输入的目录名称来匹配一个实际对应的路径全名,然后通过 eshell/cd 来完成跳转操作。为什么不直接执行 j 来实现跳转呢?eshell是emacs模拟的shell并不是真实的shell,它是与Emacs绑定的,外部的shell命令无法改变 eshell的环境包括它当前所在的目录。因此我们需要调用eshell自身的命令来改变它的环境。最终的效果如下eshell 的 alias在普通的shell中,我们可以通过 alias 定义命令的别名,例如常用的 ll 或者我喜欢将 vi 和 vim 改成 nvim。eshell中也可以设置别名eshell 中使用 alias 来设置别名,它的语法如下:alias 别名 '命令 [参数] $@*'参数部分传入 $1、$2 等等,代表传入的第一个、第二个参数,或者直接使用 $@* 表示接受输入的所有参数,例如我们定义一下 ll 这个别名alias ll 'ls -l $@*' ; 输入 `ll` 等价于 `ls -l`在 eshell 中输入的 alias 命令仅仅在当前 eshell 环境中生效,想要永久生效可以将上述命令写入到 ~/.emacs/eshell/alias 文件中。eshell 会通过函数 eshell-read-aliases-list 加载对应文件中定义的别名,保存别名的文件路径被保存在 eshell-aliases-file 中,它默认的值为 ~/.emacs.d/eshell/aliaseshell history普通shell中有一个 history 命令可以查看保存的历史,并且可以使用方向键的上和下来输入上一条或者下一条命令。eshell 虽然也能这么干,但是eshell 因为是elisp模拟的终端,背靠Emacs这座大山,它可以配合Emacs的相关插件更高效的利用history命令。这里我们可以配合 consult-history + orderless 来模糊匹配命令(use-package em-history :ensure nil :defer t :custom (eshell-history-size 1024) (eshell-his-ignoredups t) (eshell-save-history-on-exit t)) (use-package esh-mode :ensure nil :hook (eshell-mode . (lambda () (local-set-key (kbd "C-r") #'consult-history))) :bind (:map eshell-mode-map ("C-r" . consult-history)) :config (with-eval-after-load 'evil (evil-define-key '(normal insert) eshell-mode-map (kbd "C-r") #'consult-history))) eshell 直接使用 term 命令上面我们提到,想要调用shell命令,可以通过编写lisp代码封装进行封装,能否直接使用shell命令呢?答案是可以的,eshell中有 eshell-visual-commands、eshell-visual-subcommands、eshell-visual-options 这么三个变量来共同决定哪些命令需要启用term 终端.eshell-visual-commands 接受一个字符串的列表,我们输入的命令在这个字符串列表中,那么就会启用term终端来执行命令eshell-visual-subcommands 来处理带子命令的复杂命令,在特定子命令下才需终端模拟eshell-visual-options 根据命令选项动态启用终端模拟。某些命令仅在特定选项(如 -i 交互式模式)出现时才需终端支持三者优先级:eshell-visual-commands > eshell-visual-subcommands > eshell-visual-options。Eshell 按此顺序检查,匹配任意条件即触发终端模拟。例如我们常见的 git、man、lazygit 等命令无法使用 eshell 中的 elisp 进行模拟,我们可以通过上述函数来封装这些命令。(use-package em-term :ensure nil :defer t :custom (eshell-visual-commands '("top" "htop" "less" "more" "lazygit")) (eshell-visual-subcommands '(("git" "help" "lg" "log" "diff" "show"))) (eshell-visual-options '(("git" "--help" "--paginate"))) (eshell-destroy-buffer-when-process-dies t))结合上述对这些函数的说明,来分析一下这段代码。首先是 eshell-visual-command 中定义的 top、htop、less、more 这些命令需要完成的term终端支持。当运行这些命令时,Eshell 自动切换到term终端,确保交互式界面正常显示(如分页、高亮等)eshell-visual-subcommands 为特定命令(如 git)的子命令启用图形终端,也就是说我们执行 git help 时会触发切换到term终端的操作,而执行 git status 时不会eshell-visual-options 当命令携带特定选项时会切换到term 终端。下面是在eshell 中执行 lazygit 的界面eshell 美化上面介绍了eshell的一些基本用法,现在来介绍如何将eshell进行简单的美化。首先介绍的是 eshell-git-prompt 。它提供了好多好看的主题在安装完插件后,可以在eshell中输入 use-theme 来列出它支持的所有主题,或者输入 use-theme name 来设定一个主题。想要持久化,可以通过函数 eshell-git-prompt-use-theme 来指定一个主题(use-package eshell-git-prompt :ensure t :after esh-mode :config (eshell-git-prompt-use-theme 'powerline))接着介绍 eshell-syntax-highlighting,它是eshell中语法高亮的插件,它是继承自 zsh 中的 zsh-syntax-highlighting。(use-package eshell-syntax-highlighting :after eshell-mode :ensure t ;; Install if not already installed. :config ;; Enable in all Eshell buffers. (eshell-syntax-highlighting-global-mode +1))接下来要介绍的插件是 capf-autosuggest 。它是一个自动补全的插件(use-package capf-autosuggest :ensure t :hook ((eshell-mode comint-mod) . capf-autosuggest-mode) )这样基本上就把我在终端上常用的一些插件和操作习惯给挪到eshell中了。当然我常用的还有一个名为 autojump 的插件。对应的 eshell 中也有一个名为 eshell-autojump 的插件。但是我已经通过别名简单的实现了一个eshell 上的 j 命令,这个插件的实现原理也是这样的,这里就不介绍这个插件了。
2025年07月01日
8 阅读
0 评论
0 点赞
2025-06-22
读 《用生活常识就能看懂财务报表》
前面提到过,我想系统性的学习一下价值投资并且实践里面的一些思想。价值投资简单讲起来就是投资企业的价值而不是价格。要想看懂企业的价值首先应该是要学会看财务报表。所以我最近需要学习一下这方面的知识。本书是我学习看财报的入门书,作为入门书来讲,它通俗易懂,将财报上的常见科目以普通人的日常生活来进行类比,做到了通俗易懂。下面是它的一些具体内容总体来说上市公司每季度会出一个季度报表、每半年会出一个半年报、每年也有一个年报。有这么多报表是不是都要分析呢?我们不用每张都仔细看,只需要重点看年报,至于季度报表只需要简单浏览一下,即可。报表并不是公司自己出了就完了,它需要第三方会计机构进行审核,也就是所谓的审计。要完全审计清楚这一份报表是非常耗时的。一般来说只有年报才会有会计的审计意见。对于财务报表,会计的审核意见有四种,这也是法律规定的,只能在这四种意见中选择其一。无保留意见:在注册会计师审查时未受到任何限制,报表完全准确,能真实反映企业的情况保留意见:有难言之隐,企业有些问题,但是不方便说无法表达意见:企业的报表我看不懂否定意见:完全不及格如果我们要看财报,发现年报上的审计意见不是无保留意见,那么可以直接掠过这家企业,因为它的财报完全不及格。企业的财报主要有三个报表:利润表、资产负债表、现金流量表;利润表告诉你企业到底是赚还是亏、资产负债表告诉你企业将钱都花在了哪里,现金流量表告诉你现金是怎么出入的,以及当前账上还有多少钱。这三个报表是立体的,全方位的,不能只看一张表。另外我们看财报时主要需要判断企业是否具有长期稳定盈利能力。一般建议看连续5年左右的财报利润表在看利润表之前需要注意一些事宜:销货收入多,不一定是好事光看销货收入的绝对值没有意义,要做分类光看单一科目、单一报表没有意义;利润表、资产负债表、现金流量表必须放在一起看阅读利润表的关键是看一家企业是否具有长期稳定盈利的能力以生活常识来看,我们普通人有一份工作收入,有时候又有投资收入或者买彩票中奖的收入;有衣食住行用、教育、医疗、人情世故等开销。最后由收入 - 支出就得到了真正剩余的钱,也就是所谓的利润。按照这个逻辑对照着看报表中的每一项;营业收入:是从事主营业务或其他业务所取得的收入,类似于普通职工的薪水营业成本、营业税费、销售费用、管理费用、财务费用、资产减值损失:这些科目都是花钱的科目,类似于上面的衣食住行用等项目息税前利润:它是在所得税之前、利息之前所赚的钱。所谓的利息就是企业长期欠款需要支付的利息利息收入/支出:一般只有长期欠款才有利息,包括公司欠别人的和别人欠公司的其他收入:除开主营业务的其他收入,例如政府退税、政策奖励、投资收益等等,拿个人来说就像中彩票,这种收入一般不可持续其他支出:主营业务以外的其他支出,例如罚款在利润表中,有这么几个公式:营业收入 - 营业成本 = 毛利润净利润 = 总收入 - 总支出利润表不能单看一个项目,而要从全局来看。例如但看营业收入高,企业不一定好,有可能其他开销也大,最终是亏损的状态。而且收入有多种来源,就像上面提到的有其他收入、利息收入等等。就算只看营业收入也需要看看按照一定的规则区分收入来源根据客户区分:营业收入的来源是分散的还是依靠某个或者某几个大客户。做生意讲究长久,如果长期依靠某一个大客户,一旦大客户转单就会产生蛮大的风险。根据产品线区分:区分哪些产品挣钱多,哪些挣钱少,未将来资源倾斜做准备;如果企业产品线单一也会有一定的风险根据地区分:如果企业的营业收入只在单个或者某几个区域,那么风险较大。如果在多个区域都能取得不错的收益,那么风险就比较小了所以看见销货收入之后必须有一个观念:不是只看见金额大就觉得很好,还要想办法去搜集资料,看细处的信息。如果要增加净利润,最好还是着重于提升收入,成本费用只做适当的管控。财务报表种,字越小越重要!小于6号字的部分,超重要!盈利临界点销售量:公司经营有营业收入、支出方面有固定支出和变动支出两大类。固定支出是不管卖出多少产品支出保持不变,例如人工费用、厂房、仓库、设备维护费用;变动支持是随着售卖产品数量的提高而提高,例如原材料,如果工人的工资是采用计件的方式,那么工资也是变动支出。盈利临界点销售量就是计算卖出多少产品时收支平衡。资产负债表资产负债表主要说明一家公司在经营事业时,拥有多少资产、积欠供货商与银行多少债务,以及向股东拿了多少钱来经营事业资产负债表与我们的存折类似,当天只显示当天的余额。资产负债表只显示制作这张表时的资产与负债。而利润表则表示一段时间内的经营情况。资产负债表有一个重要的恒等式:资产 = 负债 + 股东权益资产负债表分为左右两侧,左侧表示资产,右侧又被分成两部分,分别是负债和股东权益。这里的股东权益是公司资产扣除负债之后,剩余财产归股东所有。如果用钱的走向来描述这张表的话,右侧就是公司的资产来源,包括银行或者其他机构的贷款、欠供应商的钱这些都是负债,股东出资,公司利用这些钱换成了左侧的资产。所以左侧始终要等于右侧。用通俗的语言来解释资产负债表的话,首先我们通过各种渠道取得了一些钱,我们需要留一些现金应急,这些现金在表中被叫做现金与约当现金。也许会借钱给好朋友,这部分是应收账款。有时候会考虑买车、或者换车,车子就是移动资产。我们可以会投入一些股票或者基金或者长期的债券,这部分叫做长期投资,一年以内无法收回。可能会买房、租地,这些是固定资产。我们可能会继续进修、出国读书,这部分就是无形资产。资产负债表的右上方表示负债,用生活中的事件做对比的话,我们要还之前欠朋友的钱,这部分是应付账款。我们欠了银行房贷、车贷,这部分钱需要还几年甚至几十年,所以它们是长期贷款/长期负债。财报这些项目的摆放顺序是有讲究的,不是随意堆砌的,一般是按照资产变现的难易度来排序。要么从难到易,要么从易到难。我国采用的是从易到难的摆放顺序。在财务的世界里,越容易变成现金的项目,它的流动性就越高、要摆在上面。所以第一项就是现金和现金等价物。第二个是应收账款、后面紧接着是存货、预付账款、其他流动资产、机械厂房设备、土地、商誉、无形资产。在财务的世界里,一年以上的才叫长期,否则都是短期,一年内到期的债券也是现金等价物。一年以内到期的叫货币市场、一年以上到期的才叫资本市场。在财务世界里也有着所谓的物质守恒定律,报表中的东西不会消失只会从一处转移到另一处,例如现金流量表中的投资现金一般转化成了资产负债表中的资产。如果发现有项目平白无故多出来了或者消失了,自己也解释不了,在投资时可能就有风险。资产负债表中有时候会出现商誉这一项,书中的解释是商誉就是猪头,我觉得叫冤大头可能更合适。假设A公司总资产有1000亿元,负债400亿、股东权益600亿。B公司的资产为100亿,资产为 100亿,负债为80亿。此时B公司的净值为 100 - 80 = 20亿。如果A公司出资30亿并且是以现金的形式完全并购B公司的话,A公司的资产负债表中现金和现金等价物一栏要减少30亿,但是资产一栏只增加了20亿,那么这多余的10亿去哪了呢?这10亿就是商誉,所以商誉就是买贵了,当了冤大头。在财务领域,商誉 = 收购价 - 净资产。只有在发生并购并且买贵了的时候才会有商誉。当然如果买便宜了,这种状况叫资本公积。就是公司不劳而获的好处。资本公积是多赚的钱,被记录在资产资产负债表右下方,被算作股东权益。股东权益比较复杂,主要有四个部分构成:股本(实收资本):股东按注册资本实际投入的原始资金,如成立公司时股东缴纳的资本资本公积:股东投入超过注册资本的溢价部分(如股票发行溢价)或资产重估增值等,这部分属于不劳而获所得盈余公积:企业从税后利润中强制提取的积累资金(如法定盈余公积),用于弥补亏损或扩大经营,法律规定企业每年税后利润的10%需提取为法定盈余公积,剩余部分可用作未分配利润未分配利润:企业累积的净利润扣除分红和提取公积后的留存部分,可供未来分配或再投资资产负债表的概念就是有钱之后如何处置这些钱,比如有钱之后丢到表的左边就是购置资产、丢到右边就是偿还债务或者作为股东权益。例如公司刚刚开张,几位股东集资5000万然后又找银行贷款5000万,此时股东权益的股本部分增加5000万,负债部分有5000万。我们在公司账上留现金1000万,其余的都用作生产经营。此时左侧各项加起来等于1亿,右侧股东权益 + 负债也等于 1亿。在公司经营一年以后,赚取了2000万的净利润。其中1500万作为投资扩张,300万用于偿还部分债务、剩余200万作为保留。那么未分配利润为2000万。其中1500万体现在资产负债表中的固定资产或者其他投资项目中。现金和现金等价物这部分的现金会增加200万,所以左侧资产总额会增加1700万,右侧增加2000万的未分配利润,减去300万的负债结果仍然是1700万,左侧等于右侧。在上面这个例子中资产负债表左侧与右侧结合起来看就是购置资产来自哪里。刚开始成立的时候来自股东权益的股本和负债。在盈利之后,资产变动来自未分配利润。同时也可以看出钱去了哪里。如何利用资产负债表判断企业的经营能力呢?我们可以看公司的资产为公司做了几轮生意,如果以饭店来类比的话就是看饭店那些桌椅板凳的翻桌率——一段时间内能接待多少桌客人。对于公司来说公司资产一年内帮助公司做了几次生意就是公司资产的周转率公司的资产主要在左边,左边的每一项都可以计算出一个周转率。资产的周转率是衡量资产的使用效率的,即在这一年中为我们做了多少次生意。例如,总资产的周转率:一般计算公式为 $ 总资产周转率 = \frac{主营业务收入净额}{平均资产总额} $其中 $ 平均资产总额 = \frac{期初总资产 + 期末总资产}{2} $主营业务收入净额 = 销售收入 - 销售退回、折扣及折让这个值我们算出来的越大越好,越大代表着资产使用的效率越高。用一年的天数除以周转率就得到这项资产多少天会做成一趟生意,也就是资产的周转周期。这个天数可以使用360天或者365天,只要计算各项周转率使用的天数一样即可。假设总资产的周转率是6那么相当于公司总资产的周转周期是60天/次。也就是总资产每60天能带来一趟生意。其他资产项的周转率计算也是大同小异,分母变成了各个资产项的平均值,分子不变。如果总资产周转率小于1表示这是一个烧钱的行业,这种一般是资本密集型行业,这种公司一般来收高投入高回报或者低回报,意味着风险,普通人投资时尽量避开这种行业。但是如果这种公司的现金大于资产的25%,代表着有充足的现金,未来不会出现资金链断裂而变卖资产的情况。在实际运用时建议先看总资产周转率,然后再看固定资产周转率,接着看存货周转率,最后看看应收账款周转率。但是这些数据要结合具体行业,与行业内的其他企业进行对比。因为不同行业的企业采取不用的赚钱策略,一般零售业靠走效率,而科技企业一般可能三年不开张、开张吃三年。存货的周转率可以越高,存货周期就越短代表着生产的存货在仓库里待的时间越短,这意味着生产的产品越受市场欢迎。而应收账款周转率越大代表收款的时间间隔就越短,也就说明企业在交易中处于强势地位,即使不允许客户赊账也能卖出货。而应收账款周转率在一定程度上能帮助我们识别假交易。企业在有些时候会采用假交易的形式来虚报营业收入导致最后利润表看起来很不错,但是因为假交易是收不到钱的,所以它的应收账款周期越来越大(或者说应收账款周转率越来越小)。而且这种假交易会导致现金资产越来越少。现金流量表我们通过利润表和资产负债表能知道一个企业能否稳定盈利。但是盈利不代表就能生存下去,很多盈利能力不错的公司最后都因为资金断裂而倒闭。公司的资产并不能马上变成现金,而一旦现金以及现金等价物无法维持公司运转就会发生资金链断裂。公司能长期生存下去的关键就是有稳定的现金流。巴菲特就比较关注公司的现金流,他偏爱那种现金流稳定的公司。现金流量表就记录了公司的现金流。公司的现金流量表就像我们日常生活中记录的流水账一样,每一笔现金的进出都会记上一笔。日常生活中我们会记录买菜、加油、购物等支出也会记录工资等到账的情况。公司也是这样,公司一般将现金流分为经营活动的现金流、投资活动的现金流和融资活动的现金流。这几类的现金流都比较简单,我们可以根据字面意思来理解它。运营活动的现金流,主要来自利润表投资活动的现金流,主要来自资产负债表的左边融资活动的现金流,主要来自资产负债表的右边也就是说只要有利润表,期初和期末的资产负债表就可以推导出公司的现金流量表,它们三者是一个立体的关系。如果有现金流入,那么按照类型对应的科目会有以 正数表示的现金金额,如果有流出则是以负数来表示。我们分析现金流量表主要有下面几个步骤:确认经营活动的现金流大于0:如果有公司宣称它的营业额又增长了多少,最终我们需要看它是否真的赚到钱,也就是说经营活动的现金流为正数确认获利含金量:$ 获利含金量 = \frac{经营活动现金流}{净利润} $ ,刚开始公司规模比较小,没有折旧费、分期摊销费用,所以经营活动的现金流就等于净利润。随着公司规模增大,后面会采购更多的设备,因此会有折旧等费用,导致公司公司净利润慢慢的小于经营活动的现金流。正常情况下这个比值一定是大于 100%的。如果小于就代表公司有意外情况或者不为人知的内情、确认经营活动的现金流大于流动负债。流动负债是将来一年以内要到期的债务。如果不满足这个条件,也就是说公司赚的钱连它欠的债都还不上,公司将来会有资金链断裂的风险。确认经营活动的现金流、利润表上的净利润二者变化趋势是否相同。总结这本书适合作为阅读财报的入门书,书中没有高深的会计知识,也没有枯燥的术语,而是采用普通人的生活尝试来将表中的科目进行类比,让我们用生活尝试就能大致明白这些表中到底记录了什么内容,让我们对公司的经营状况有一个初步的认识。对于没有会计基础的读者来说是一本入门特别好的书
2025年06月22日
6 阅读
0 评论
0 点赞
2025-06-16
读 《源代码:比尔盖茨传》
本书是比尔盖茨自己给自己写的一本自传。讲述了盖茨从幼年到早期创建微软的成长经历。盖茨在开篇不久就提到自己热爱读书,我想成功人士都喜欢读书,就像查理芒格所说的,“我所认识的聪明人中,没有一个不是每天读书的,一个也没有”。另外盖茨从小也是一个不服输的人,例如他在于外祖母玩扑克游戏时总会为了赢开动脑筋,想方设法,不断尝试,直到他能赢为止。而且书中也提到他的老师针对这种性格制定了一些计划来激励盖茨努力学习。盖茨也是一个能深入思考、耐得住寂寞的人。盖茨在书中写道:“我会留出完整的时间,独自待在胡德运河,我称为‘思考周’。每年一两次,我会开车或乘坐水上飞机去到那里,待上七天,在不被打扰的状态下专心读书,钻研报刊文章和学术论文,突击学习一些我认为最需要掌握的知识。”盖茨所在的湖滨中学是典型的美国中产子弟学校,里面的学生家世都比较好,要么是工程师,要么是企业高管。该学校采取一种比较开放的教学态度,甚至引入计算机。在这里盖茨接触到了计算机编程并沉迷其中。在这里他结实了保罗、肯特这样的朋友。并且在湖滨中学有一个计算机编程小组,比尔盖茨描述了一种令人神往的友谊。在看到肯特的登山事故后,心理有一种惋惜甚至跟作者一样有一种悲伤的情绪在里面。一个有着个广泛阅读兴趣、强大内驱力、不断挑战自我、 不介意朋友奇怪性格行为的、盖茨此时最好的朋友突然离世,对任何人来说都是一个巨大的打击。我时常也在幻想,如果肯特没有离世而是陪伴盖茨创办微软并且作为微软的功勋不知道当今盖茨会有怎样的成就,当今的计算机技术会不会不一样,微软会不会比现在更大。从盖茨这本自传中,应证了爱迪生的一句话:“天才是1%的灵感加99%的汗水”。在记录湖滨中学这段历史时,编程小组的人总共完成了财务软件、选课软件以及最后为牛郎星计算机编写的basic解释器程序。在此期间盖茨和伙伴们经常夜以继日的编写代码,没有时间玩乐、没有时间好好吃饭、甚至没有时间打理自己,睡觉都是随便打地铺。我想盖茨的成功是必然的,即使他不在计算机领域取得成就也早晚会在其他领域取得同样的成就。而且他的家世对他的成功并没有起到决定性的作用,如果盖茨出生在一个更底层的家庭,他可能没办法接触计算机,不会取得如今这么大的成就,但是也能取得超越普通人的成就。盖茨永远都能在一群同龄人中脱颖而出。从这本书中我们可以窥见计算机发展的一些历史,盖茨最早接触是早期的大型计算机、那是一种需要靠打孔纸带输入程序的计算机,那个时候计算机还是庞然大物,只有科研机构和大型企业才有能力负担计算机的使用费用。随着因特尔集成芯片的推出,第一次有了面向个人的小型机。有了盖茨为之编写basic解释器的牛郎星计算机、也有了苹果公司推出的个人机。在早期计算机主要靠卖硬件赚钱,而软件只是附带的,可以自由的拷贝、修改。在小心机刚刚出现时盖茨就预测未来可以专门靠给计算机编写软件赚钱,并且意识到了软件版权的重要性,以此创建了微软。不得不说盖茨拥有敏锐的商业嗅觉,加上早期的微软主要是盖茨在做日常管理,也说说明他有很好的商业头脑,这与他早期大量读书是分不开的。本书的篇幅不算大,故事也在创建微软之后戛然而止。后面的故事可能还要等盖茨接着出书。本书并没有那种商业大佬自吹自擂,给读者灌输各种大道理或者夹带私货,反而写的十分朴实、真诚,就是一本简单的回忆录。是一本值得阅读的书
2025年06月16日
2 阅读
0 评论
0 点赞
2025-06-15
读《聪明的投资者》
本书作者是价值投资的鼻祖——本杰明格雷厄姆;本书也是价值投资领域非常经典的一本书。读这本书也是因为我在尝试做一些投资,希望学点投资理财的知识。下面我列举一下我从书中学到的一些东西投资与投机价值投资我的理解就是将钱投资到优秀的公司,靠公司良好的经营业绩带来利润的增长,赚得是公司业绩增长的钱。也就是所谓的买股票就是买公司,公司挣钱股票就能挣钱。这本书的开始,格雷厄姆给出了投资和投机的定义。在保留本金的前提下,利用自己的分析来带来资产的增值。最重要的是保住本金、其次是有自己理性的分析,最后才是尽可能的带来较高的收益。不满足这个条件的都是投机。普通人买股票要么在某个股票的价格低点买进、在高点卖出赚取其中的差价;要么靠所谓的内部消息进行买卖,利好则买入、利空则卖出;又或者是根据当前风口买入一些行业股票,比如之前的元宇宙、现在的AI概念股。格雷厄姆说这些方法对普通投资者来说可能风险很大。例如做波段并不是每次都能抓准时机,有可能最后的结果就是追涨杀跌;靠内部消息的话,作为普通投资者来说,消息传到你的耳朵里时在上游的股东或者庄家早就有这个消息了,甚至有时候这些消息就是上游玩家故意放出来误导普通投资者的。最后一种,跟风或者说看趋势,即使你看对了未来的风口也不一定能赚到钱,因为好的风口不一定能带来好的利润,第一个看到桃子的不一定是摘桃子的。防御型投资者的投资建议那么作为普通人该如何投资呢?格雷厄姆将投资者分为了防御型投资者和进攻型投资者。防御性投资者是没有什么专业的背景也不希望花大量的事件在投资这件事上,仅仅希望赚到合理利润的投资者。而进攻型投资者是有相关专业知识,花大量时间自己选股,并且希望能获取合理回报的投资者。格雷厄姆为两种投资者分别制定了不同的投资策略。防御性投资者应该是股债组合,动态调节。具体来说就是持有稳健的债券和优质的股票,股票占比在25%到75%之间根据个人风险承受能力来决定。例如可以债券和股票分别50%。每半年或者一年调仓一次,股票涨的多了,卖掉部分股票补充到债券中,或者股票跌了,卖出部分债券补充到股票中,再次将二者的比例回复到50%和50%。普通人没有特别专业的知识也没有那么多的时间来详细研究一家公司。对于防御型投资者来说什么是优质的股票呢?格雷厄姆也给出了一些优质股票的标准:首先应该分散风险,股票组合里面应该保留不同行业的10到30支股票选择行业龙头公司和财务稳健的公司,格雷厄姆建议选择流动资产是流动负债的两倍,这样不会因为高负债带来财务风险选择长期分红的公司,格雷厄姆建议至少有20年稳健分红历史的公司警惕新兴行业和高科技行业等高成长股,这种行业一般都是高风险高回报的。成长股的市盈率一般特别高,这代表这个公司的股票被严重高估。虽然可能在短期内挣到钱,但是亏损的风险也极大。对于市盈率格雷厄姆建议,7年的平均市盈率不超过25倍、如果只看一年的市盈率,应该不超过20倍另外格雷厄姆推荐使用定投的方式来买入这些优质的股票,在市场高估时候同样的金额买入少量的股票降低风险,在市场低估的时候同样的钱买入更多的份额为未来反弹提供基础进攻型投资者的建议对于进攻型投资者来说,仍然需要至少持有25%的债券。进攻型投资者往往具有更专业的知识、有更多的精力、也愿意花更多的时间和精力去寻找那些优质的股票。进攻型投资者应该在股价处于低估时买入、高估时卖出,通过市场的错判获取超过市场的收益。那么对于进攻型投资者来说,什么样的股票值得购买呢?寻找那些被市场冷落的龙头,可以在一些知名指数中寻找市盈率不高的公司寻找那些股价低于净营运资本的公司,净营运资本 = 流动资产 - 流动负债特殊机会,例如某些超级巨头遇到反垄断的拆分,遇到这种黑天鹅事件导致股价暴跌的机会,这种机会不大,需要我们密切关注市场动态。遇到了也不能盲目的入场,仍然需要理性的分析关于基金的讨论在稳健的市场中,基金一直是方便和容易的投资方式,基金就是将收集大众的钱交由专业的基金经理去打理,做到投资这种专业的事交给专业的人和机构去做。但是基金也没有想像中那么美好。首先我们总是会被市场的高收益神话所迷惑,在追求高收益时往往伴随着高风险大多数投资者都喜欢高收益的基金经理,认为过去的收益代表了他的示例。实际上过去的收益并不能代表未来,过往的高收益可能是运气格雷厄姆说基金的高收益可能跟早期基金的规模不大有关,在规模不大的时候,基金持有的一两只股票上涨有可能带动基金业绩上涨。一旦基金的规模上来了之后,根据基金当初规定的投资策略,基金经理需要拿着这些大量涌入的资金寻找合适的投资机会,而好的投资机会就那么多,基金经理可能会被迫买入普通股票。高昂的管理费也会侵蚀投资者的收益,有些基金设立时并不会考虑投资者的收益,而是赚取管理费。基金经理的利益与普通投资者的利益不一致,导致基金经理并没有多少热情来提高基金收益率羊群效应,当一只高收益的基金被发现后,市场会出现大量模仿该基金投资策略的基金。大量资金买入同样的股票会推高股票价格,增加风险。对于投资者来说该如何选择基金呢?首选指数基金,指数基金可以帮助我们获取市场的平均收益,而且指数基金费用普遍不高选择基金经理与投资者利益一致的基金,要么基金经理自己是老板不会跳槽跳槽到其他基金的,或者基金经理、基金公司自己有大量的钱投入到该基金,这样基金经理才会关注业绩会买的是徒弟,会卖的才是师傅,投资者应该在合适卖出基金呢?格雷厄姆给出了几点建议交易策略突然发生急剧的变化基金经理变动业绩出现异常波动,原本稳健的基金突然大幅亏损或者暴涨或者给自己设定一个止盈值,例如在收益率达到20%之后卖出作为公司股东当我们买了股票之后我们就是公司的股东,我们有权参加公司的股东大会,当管理层不靠谱时有权提议更换管理层,但是好像大多数普通股民并不关注公司的管理层,也不关心公司的运营情况。作为普通股民我们应该关注公司的那些层面呢?应该关注公司的利益分配,也就是公司是否愿意拿出利益来给股东分红。安全边际所谓的安全边际就是安全的底线,通俗的来讲就是以1元买入价值10元的资产比8元的价格买入未来要赚的更多也更安全。以足够低的价格买入合理的资产。目前来说没有通用的标准来判断一家公司的股价是否处于安全边际。需要自己根据实际情况自己去寻找适合的价格标的。总结价值投资的核心是以足够低的价格买入内在价值高的公司,不关心具体的价格,只关心公司的内在价值。公司的内在价值需要自己根据专业知识判断。我最大的领悟就是投资最重要的是要有风险意识,要保住本金。并且它定义了我是一位防御型投资者并且给了我一个通用的投资策略。后面我会根据这个策略来进行相关的实践,尝试每年总结一下自己的投资。
2025年06月15日
1 阅读
0 评论
0 点赞
2025-05-29
Emacs 折腾日记(二十六)——buffer与窗口管理
本节我们将介绍如何在Emacs中的buffer与窗口管理,目标是快速管理窗口,以及快速在不同buffer中进行切换基本概念介绍Emacs与vim相比的一个特点是,Emacs是一个窗口程序,或者说是一个gui程序。而vim是一个终端字符界面程序(当然Emacs也可以启用终端模式),那么与vim相比,Emacs多了了一个frame的概念。有时候有些初学者(包括我自己)总是将frame当作窗口。frame:Emacs整个程序,包括标题栏、工具栏、显示文本的界面等等部分window: 真正用来显示文本的区域被称之为window。我们经常说的分屏就是创建了一个window,frame里可以包含多个windowbuffer: Emacs 从磁盘中读取的文本保存在buffer中,buffer不一定都在window上显示。也不是所有buffer都对应一个文件针对frame来说,虽然也有相关的函数可以控制,但是一般我不太喜欢在多个frame之间进行切换,也不习惯创建多个frame。所以这里先略过window 管理关于 window。在之前介绍了window相关的函数,包括 split-window、selected-window、delete-window、以及跟窗口设置相关的 current-window-configuration、set-window-configuration。基于evil插件,我们可以使用vim的窗口创建命令。例如可以使用 :vsp 来将窗口进行纵向分割。但是我发现 :sp 和 :vsp 都是纵向分割的,这个跟vim就不太一样了。好在evil提供了一个名为 evil-ex-define-cmd 函数用来修改ex命令。所以这里我们在evil的配置中进行修改,添加下面的代码(evil-ex-define-cmd "sp" 'split-window-below) (evil-ex-define-cmd "vsp" 'split-window-right)窗口创建完成之后,我们可以使用vim 的方式来关闭窗口,例如使用 :q 命令来关闭当前窗口,或者使用 :on (或者它的全称 :only) 命令来关闭其他所有窗口。在窗口之间的移动,当初我在介绍vim配置的时候介绍过我习惯使用 leader + 'h/j/k/l' 的方式来在各个窗口间移动。但是在Emacs中,我们有比这更高效的移动方式。ace-window 是一个在各个窗口之间进行快速跳转的插件,在激活ace-window 之后,它会在各个窗口上标记一个数字,我们可以按下这个数字快速跳转到对应的窗口(use-package ace-window :ensure t :after general :hook (dired-mode . (lambda () (setq-local aw-ignore-on t))) ;; dired-mode 下禁用 ace-window :config (my-leader-def :states '(normal visual) ";" #'ace-window "l" #'evil-window-left "h" #'evil-window-right "j" #'evil-window-down "k" #'evil-window-up) )这里我们绑定 leader + ; 来调用 ace-window 执行窗口的跳转buffer 管理在介绍neovim 的配置的时候,介绍过一个名为 buffer-line 的插件,它可以很方便的将 buffer 以 tab 的形式给列出来,并且可以根据当前打开的buffer上的编号来进行跳转,我们绑定了 leader + 1~9 的数字来分别跳转到编号为 1~9 的buffer。Emacs中我也希望实现这样的功能,可以将vim上的操作无缝的转移到Emacs上来。要实现这个功能,我们可以安装 awesome-tab 包。它并没有被包含在Emacs 的官方源中,我们需要自行下载git clone --depth=1 https://github.com/manateelazycat/awesome-tab.git将它下载到对应的位置之后,如果要加载它,则需要将它所在的路径放到 load-path 中如果使用 use-package 来加载可以使用如下的代码(use-package awesome-tab :load-path "path/to/your/awesome-tab" :config (awesome-tab-mode t))启用之后,当我们多开了几个buffer之后,它们被显示到不同的tab上了。如果希望能像 buffer-line 那样根据编号跳转,首先可以通过 awesome-tab-show-tab-index 来显示tab上的编号,然后绑定数字键到 awesome-tab-select-visible-tab 进行跳转。解决了这个问题,剩下的函数官方文档上都有介绍,所以我们还是沿用vim上的快捷键,最终的配置如下:(use-package awesome-tab :load-path "~/.emacs.d/awesome-tab" :after general :custom (awesome-tab-show-tab-index 1) :config (awesome-tab-mode t) (my-leader-def :states '(normal) "gb" #'awesome-tab-ace-jump "gT" #'awesome-tab-backward-tab "gt" #'awesome-tab-forward-tab "1" #'awesome-tab-select-visible-tab "2" #'awesome-tab-select-visible-tab "3" #'awesome-tab-select-visible-tab "4" #'awesome-tab-select-visible-tab "5" #'awesome-tab-select-visible-tab "6" #'awesome-tab-select-visible-tab "7" #'awesome-tab-select-visible-tab "8" #'awesome-tab-select-visible-tab "9" #'awesome-tab-select-visible-tab))awesome-tab还可以针对不同的buffer进行分组,然后对分组的buffer进行统一的操作,这里就不介绍了,有兴趣的读者可以自行阅读相关的文档。本节到此就结束了,本节通过 ace-window 和 awesome-tab 插件基本复刻了vim中有关窗口的配置和快捷键。
2025年05月29日
10 阅读
0 评论
0 点赞
2025-05-22
Emacs 折腾日记(二十五)——目录管理
在之前的文章中,分了几篇着重介绍了Emacs编辑方面的功能改造。作为一个文本编辑器,要想坚持用下去首先应该改造成自己熟悉的编辑方式。本节我们来介绍Emacs的目录管理Dired ModeEmacs自带一个名为 Dired (Directory Editor) 的插件,它负责对目录进行操作。默认的,我们可以使用 C-x d 来进入Dired Mode。启动后它会等待用户输入想进入的目录,默认是当前目录。Dired Mode 是提供了一种类似操作文本的方式来操作目录。我们可以像操作文本那样来对目录进行类似于拷贝剪切粘贴删除创建跳转查找重命名批量操作得益于前面的篇章配置的一些插件,可以很方便的使用Dired Modedired 美化在正式介绍dired 使用之前,先稍微对它进行一些美化,原始的界面太素了,看着不太好看。首先介绍 diredfl ,原始的dired 只能使用两种颜色来区别文件和目录,而 diredfl 可以使用多种颜色,让dired显示的更加漂亮(use-package diredfl :ensure t :hook (dired-mode . diredfl-mode))接着我们再使用 all-the-icons-dired 来给dired显示的前面加上一个图标。这个插件依赖 all-the-icons 插件。(use-package all-the-icons :ensure t :when (display-graphic-p) :commands all-the-icons-install-fonts) ;; 安装完成之后需要执行 all-the-icons-install-fonts 命令安装对应字体 (use-package all-the-icons-dired :ensure t :hook (dired-mode . all-the-icons-dired-mode))我们也可以通过安装 all-the-icons-completion 插件,给minibuffer中的补全系统也加上图标(use-package all-the-icons-completion :ensure t :hook ((after-init . all-the-icons-completion-mode) (marginalia-mode . all-the-icons-completion-mode)))dirvish 增强direddirvish 是在dired 基础之上的文件管理增强插件。相对与dired 它提供快速跳转、实时预览、并且能兼容对dired的一些扩展。(use-package dirvish :ensure t :hook (after-init . dirvish-override-dired-mode) :bind( ("C-x d" . dirvish) )) 我们使用命令 dirvish 就能打开对应的窗口,或者像上面那样绑定快捷键来打开对应的窗口使用vim的方式来操作目录这里的使用vim的方式来操作多少有点标题党的意思。我无法做到完全按照vim编辑文本那样来编辑目录,但是这里我可以修改以下对应的快捷键已达到某些操作可以使用vim的快捷键。(use-package dirvish :ensure t :hook (after-init . dirvish-override-dired-mode) :bind(:map dired-mode-map ("C-x d" . dirvish) ("y" . dired-do-copy) ;; 拷贝粘贴 ("d" . dired-do-delete) ;; 删除 ("r" . dired-do-rename) ;; 重命名 ("a" . dired-create-empty-file) ;; 创建空文件 ("+" . dired-create-directory) ;; 创建文件 ("SPC" . nil) ;; 取消空格键的绑定 ) :config (with-eval-after-load 'evil (evil-define-key 'normal dired-mode-map "r" 'dired-do-rename)) ;; 排除evil模式下默认键的覆盖 (my-leader-def "j" #'dired-goto-file) )在上述的配置中,我绑定的快捷键如下快捷键功能C-x d打开diredy拷贝d删除r重命名a创建空文件+创建空目录SPC j跳转到指定文件需要注意的是,在 config 中调用了这样的语句 (with-eval-after-load 'evil (evil-define-key 'normal dired-mode-map "r" 'dired-do-rename))with-eval-after-load 表示在某个插件加载之后,这句代码的意思是,在evil插件加载后,在normal模式下,我们定义dired mode 下快捷键 r 绑定到 dired-do-rename,也就是重命名这个功能。之所以要这么做是因为在evil插件加载后会覆盖我们定义的快捷键。另外为了正常使用 leader键,这里特意取消了空格键在dired 中的定义,原本它被定义为跳转到下一行。这些功能都比较简单,所以这里就不演示了。搜索文件并跳转正常情况下,当项目文件和代码量上来之后,再一个目录一个目录的找就不太现实了。常见的是根据代码中函数定义来找文件或者根据文件来找函数定义。前者我们通过consult-rg 已经实现了。这里介绍以下如何通过文件名来查找并快速打开文件我们可以使用 consult-locate 来搜索文件,结合前面介绍的orderless,我们只需要对文件有一个相对的映像就可以找到。想要使用 consult-locate 需要安装 locate 程序,在Arch Linux 中可以使用下面的命令安装sudo pacman -S mlocate sudo updatedb ;; 更新数据库我们以打开配置文件中的 init-completion.el 为例。我们可以直接使用 M-x 输入命令 consult-locate并回车 , 接着在命令提示符后输入一个大概的内容,然后在minibuffer的候选项中找到对应的文件即可我们也可以结合 embark-act 命令来做到跳转到文件所在的 dired 中,这里我们在 embark 的配置中添加一个快捷键定义(use-package embark :ensure t :after consult :bind (("C-e" . embark-export) ("C-;" . embark-act))) ;; 添加 embark-act 快捷键这样在定位到文件之后,可以直接使用 C-; 调出对应的动作,最后使用 j 来完成进入dired的动作有了 consult-locate 和 embark-act,前面介绍的 dired中的跳转操作的实用性就大大降低了,如果我们记得文件的全路径,直接使用 find-file 打开就好了。如果只有一个模糊的映像,那么使用 consult-locate 配合 orderless,比进入dired 然后执行跳转要快的多到这里,Emacs中关于目录管理的部分就介绍完了。使用dired配合键盘操作能极大的提升的效率
2025年05月22日
9 阅读
0 评论
0 点赞
2025-05-16
Emacs 折腾日记(二十四)——帮助信息的一些优化
Emacs 是一个自文档的系统,任何有关Emacs的信息都可以通过Emacs自身查阅。包括基础的入门手册、elisp手册、以及各种插件的相关说明信息。一般遇到不懂的变量直接使用 C-h v。查看它的说明。使用 C-h f 查阅相关函数、使用 C-h k 来查找对应快捷键绑定的函数。一般来说阅读官方一手的文档比从任何论坛或者搜索引擎来的更快更准确,而且有不少Emacs高手都推荐多多阅读Emacs的官方文档。本节就着重介绍一下我了解的关于阅读文档的一些姿势。查找相关定义最开始介绍过使用 C-h f 之类的查看相关文档,Emacs所谓的子文档不光指的是查看文档,而且还可以查看相关的源代码。有些我们可以通过文档中给出的源码链接点进去看,但是还是不如直接查看源码。直接查看源码可以使用 find-function、find-variable、find-function-on-key。它们分别对应着查找函数、变量、以及快捷键绑定的函数定义。我们可以绑定一些快捷键(global-set-key (kbd "C-h C-f") 'find-function) (global-set-key (kbd "C-h C-v") 'find-variable) (global-set-key (kbd "C-h C-k") 'find-function-on-key)对默认文档显示的优化我觉得官方的文档显得比较素,比较原始。为了提高阅读的体验我们可以对文档进行美化。这里可以使用 helpful来增强一下。(use-package helpful :ensure t :bind (("C-h f" . helpful-callable) ("C-h v" . helpful-variable) ("C-h k" . helpful-key) ("C-h s" . helpful-symbol) ))我们针对 C-h k 这个快捷键来对比一下原始的文档和 helpful 增强之后的文档显示效果对比发现,helpful 不光对显示效果进行了一些改进,而且显示的内容更加丰富。特别是它已经可以直接显示出相关定义的源代码,在某种程度上替换默认的 find-function 等函数。which-key在介绍配置 neovim 的时候,介绍了 which-key 插件,它可以根据用户输入的快捷键前缀显示所有可能的匹配,使我们记忆快捷键的负担减轻。Emacs上也有类似的插件。在Emacs 30以后内置了 which-key 插件,我们只需要启用(use-package which-key :ensure t :hook (after-init . which-key-mode) :custom (which-key-idle-delay 0.7))
2025年05月16日
5 阅读
0 评论
0 点赞
2025-05-14
读《恶意的构图:侦探的委托人》
峰岸谅一被怀疑通过纵火杀害了他的岳父,因为在峰岸老人被烧死在自己公寓的晚上,谅一告知警察他未出现在公寓附近,但是邻居却作证,当天晚上看到谅一出现在公寓附近。并且警察在纵火现场发现了他的打火机,而且谅一右脸刚好有烧伤的痕迹,虽然他狡辩说自己不小心在烧开水时烫伤。另外谅一的公司出现资金周转困难,急需用钱,而峰岸老人早期通过炒股早已实现财富自由。这些线索都让警察认定他就是凶手,并且检察机关对他提起诉讼。谅一希望通过衣田律师进行辩护,奇怪的是衣田律师此前并没有进行过刑事案件的辩护。当然衣田律师接到这个案子后也尽心尽力帮助谅一进行辩护。但是对于案件的关键部分,他总是含糊其辞,辩护律师衣田征夫也被弄得晕头转向。好巧不巧,在谅一即将迎来最终判决时,谅一的妻子,朱实女士被发现不幸溺亡在别墅的地下室中。警方通过排查认定是之前被害的峰岸老人为了天冷时水管不被冻住打开了水龙头,并且一时疏忽忘记关闭水龙头,而朱实女生在不知情的情况下贸然乘坐电梯前往地下室,当电梯门开后地下室的水涌入电梯导致了她的死亡。这个时候故事迎来了第一个反转——在朱实去世后,谅一突然提出他有不在场证明。因为在火灾发生后,他曾今与一位戴着墨镜头顶假发的女子在一家旅馆同居,并且旅馆工作人员也证实,谅一脸上的烫伤是在旅馆弄的。最终谅一被无罪释放。在谅一被释放后不久,谅一被发现死在别墅中,并且警方发现他被人从楼梯上推下,但是他真正的死因却是砷化物中毒。并且谅一开过来的车子也被烧毁。此时故事进入到两名女子的回忆中,首先是谅一的小姨子,也就是朱实的妹妹幕叶。通过幕叶的回忆,此时我认为是朱实女士提前在峰岸老人酿造好的梅子酒中下毒,因为她知道谅一喜欢这种酒,并且在她利用自己的死成功报复了谅一。而且幕叶有一个表弟名叫启太。因为家庭缘故,启太慢慢变成了一个不良少年,但是因为从小受舅舅启治的疼爱,所以幕叶一直对启太很好,并且他们之间的姐弟关系也维持的不错,但是在一天早上幕叶发现启太居然开车撞向她,想置她于死地。幕叶怀疑与谅一在火灾发生那一晚同居的女性是佳苗。由此引入了今村佳苗的回忆。佳苗与启治是重组家庭,因为启治的前妻久子患有精神类疾病,所以与久子离婚后与佳苗再婚了。同时佳苗带来了一个女儿——美土里。启治再婚后,启太露出了叛逆的一幕,因为他之前与父亲表面关系好,仅仅是希望父亲不要抛下生病的母亲,但是父亲再婚后,他的幻想彻底破灭,并且从此学坏了,不光逃课逃学,后面小偷小摸,并且与帮派扯上关系。几年之后美土里也离家出走,与帮派的一位少爷同居了,为了请求帮派拆散他们二人并且让美土里回来,启治只能找到有帮派有关系的人从中周旋并且借了2000万的高利贷。虽然女儿回来了,但是高利贷压得他们一家喘不过气来。只好向峰岸老人借钱。在债务问题眼看着要解决的时候,谅一表示他代表岳父峰岸老人来要债,最终启治卧轨自杀。在启治自杀后,美土里又离家出走了。并且佳苗在打扫女儿的房间时发现了墨镜和假发,原来那天与谅一同居的人是美土里。并且这个时候美土里的男友也找上门来。前面给出的各种推理用的线索,让人目不暇接。这个时候侦探登场了,随着侦探的登场,真相也在这一刻揭秘。本书在设置谜题这块我觉得有所欠缺,它并不是那种传统推理小说中的谜题,反而是一个社会中常见的凶杀案。而且最后结尾处强行将所有人融成一个圈子,虽然这个伏笔令人眼前一亮,但是感觉经不起推敲。不过我没看过前面的几作,所以这里不做过多的评价。但是它并不是我期待的那种推理小说,除了有案件、有侦探,我感觉不出来有什么额外的推理元素。也没有读后那种解开真相的爽快感。只有简单的“哦,原来是这样啊”,这种平淡。
2025年05月14日
1 阅读
0 评论
0 点赞
1
2
3
4
...
34