我试图在vim状态行中显示实时字数.我这样做是通过在我的.vimrc中设置我的状态行并在其中插入一个函数.这个函数的想法是返回当前缓冲区中的字数.然后,此编号显示在状态行上.这应该很好地工作,因为状态线几乎在每个可能的机会更新,因此计数将始终保持"实时".
问题是我当前定义的函数很慢,因此当它用于除最小文件之外的所有文件时,vim显然是缓慢的; 由于这个功能如此频繁地执行.
总之,有没有人有一个聪明的技巧来产生一个快速计算当前缓冲区中的字数并返回结果的函数?
我应该如何获得一个bool值,我可以在Objective-C中指定true,false和nil?Objective-C的做法是什么?很像C#的Nullable.
我希望能够使用nil值来表示undefined.
我很想知道在编程中人们会认为最有用的数据结构.您发现自己一直使用哪种数据结构?
这篇文章的答案应该有助于新的程序员有兴趣为他们的问题找到有用的数据结构.答案应该包括数据结构,有关它的信息或相关链接,它正在使用的情况以及为什么它是这个问题的好选择(例如理想的计算复杂性,简单性和理解等)
每个答案应仅限于一个数据结构.
感谢任何人们可以分享的智慧和经验珍珠.
我正在寻找一个可以从地图调用的函数.我们的想法是调整窗口大小以适应缓冲区内容.这不是太难:
fu! ResizeWindow(vert) "{{{
if a:vert
let longest = max(map(range(1, line('$')), "virtcol([v:val, '$'])"))
exec "vertical resize " . (longest+4)
else
exec 'resize ' . line('$')
1
endif
endfu "}}}
Run Code Online (Sandbox Code Playgroud)
但是,我会喜欢在计算高度时考虑逻辑线的功能(我并不过分担心宽度).
例如,已包装(由于:set wrap
)的行将计为两行或更多行.折叠的37行的块只计为一行.
有没有人知道一种方便的方法来获得这个'逻辑行计数',而不必手动计算它?如果我确实需要手动执行此操作,是否还有其他任何我会丢失的情况会导致行以可能不同的行数表示?
我刚刚改变了我的'completeopt'设置:
set completeopt = preview,menuone,longest
Run Code Online (Sandbox Code Playgroud)
到默认值:
set completeopt = preview,menuone
Run Code Online (Sandbox Code Playgroud)
经过一段时间的使用,我决定我更喜欢默认选择第一个条目.
我确实有一个烦恼.我想能够尝试完成,如果我正在寻找的匹配不在列表中然后丢弃建议的完成并恢复到我的原始文本.这是怎么做到的?
我似乎从遥远的过去记得这种行为存在,但随机抨击按钮并没有证明是富有成效的,搜索对我来说并不适用.
谢谢你的帮助.
是否有一个实现List接口的容器在迭代时支持并发修改?具体来说,我希望一个线程迭代集合,而许多线程插入并从此列表中删除元素.迭代器应该看到它尚未遍历的列表的修改.
我正在寻找类似于ConcurrentLinkedQueue的迭代行为,但支持在特定索引处添加和删除元素.我最好寻求强一致性(我愿意为它支付锁争用开销),但我可能会忍受弱一致性.
我很高兴看到第三方库,因为我在标准库中看不到任何提供我正在寻找的内容的东西.
我最近一直在和Clojure一起玩,这让我想到了......
在您考虑使用它之前,您还想从编程语言中寻找什么?什么是让你注意并调查它的语言?
我脑子里想到的东西就是可用的工具.我发现有一个非常好的调试器,分析器和可能的REPL所有使用一种语言更愉快.
vim ×3
boolean ×1
collections ×1
concurrency ×1
iteration ×1
java ×1
list ×1
logic ×1
objective-c ×1
types ×1