111 karma · joined February 27, 2015
That seems strange, you'd be sending multiple times the same AI's actions to the server, in which case you better be certain that it's deterministic, not to mention the security concerns. It seems far easier to execute the AI on the server and send its actions to each player, especially if it's a trivial AI.
Maybe in the beginning, but after having developed calluses you can basically practice for an undefinite period of time.
I just wish I could log the scrollback buffer so that I could open an actual editor on it, but I don't think libvte exposes anything to do this.
Mind expanding on that, or are you just going to whine? It's not like vi is the ultimate tool.
I also absolutely agree that this is the correct way for an editor to be implemented.
No applications running in the terminal will be able to tell the difference between these two different key presses.
Not being destructive of user input, for starters.
'w' will move the current selection to the next word so only one word. To extend the selection you need to press 'W' so "wWWWd" will delete four words. For most motions (if not all), the uppercase variant will extend the current selection.
This also makes searching slightly different:
/ search forwards
? extend selection forward
<a-/> search backwards
<a-?> extend selection backwardsAs I said, all the heavy lifting is done in scopes like %sh{ ... }. This way you can actually use any language you want, and it's only the piping you have to do through kakoune commands.
Most common languages (like go) already have plugins to do some basic tasks like formatting.
If you're interested in the editor, I would rather recommend reading the readme of the project[1]. There is a lot to read, and you can start making plugins once you understand it.
> Another often overlooked property of using a text editing language is that it’s fun.
Some other things that I like about it that are not mentioned:
The author is responsive to feature requests and bugs on github.
The codebase is very well-made, if you have any interest in C++ I recommend taking a look at it.
No scripting language, most of the heavy lifting done in plugin is through shell calls (asynchronously or not). Example here [1]. I personally think that it's kinda hard to grok to be honest.
Thanks to the client server architecture, it is possible to make an external UI[2].
There is no line wrapping currently. Don't know about long documents, but the editor in general is very efficient.
[1] https://github.com/mawww/kakoune/blob/master/rc/core/grep.ka...
[2] https://github.com/mawww/kakoune/blob/master/doc/json_ui.asc...
I then discovered kakoune[1] and liked its design. I started getting familiar with it and using it more and more, and I think its core is much more solid than vim/emacs. It definitely doesn't have the same community support and plugins but it's already quite feature rich.
Full disk encryption also doesn't prevent a running application from seeing the directory structure. But I guess this is not a very realistic attack vector.