Here's me doing it with the following macro:
A,^Mdesc: ''^[^Wwjy$^Wwhpjjj
The beauty of macros is that they scale; running them ten or ten thousand times is simply a matter of changing the count before typing @@
. Watching you mash your arrow keys like some sort of Neanderthal made me mildly furious.
In hindsight, hpjjj
should just be P3j
.
E furt, am urmarit mizeria toata noaptea.
In timp ce se verificau prin whois incercam si sa cumpar domeniul care ma interesa pe rotl, apasand ca o maimuta turbata pe butonul ala de "Adauga".
Fac baietii treaba buna cu prietenii de la eureg.
​
Aveti si un sample de cum s-au desfasurat lucrurile.
> Not using asciinema
Edit: Also, I think it would be a lot more useful if the gifs were organized a bit (i.e. not just a huge list of all gifs, where many are just different aspects of the same thing, yet not grouped in any way.)
I'm writing a small library for writing trees (such as the ones printed by cargo-tree or tree) to a terminal, with style.
A short demonstration of printing out a Config.toml
as a tree is here.
Thank you! A lot of trial and error, asciinema, Screenflow, After Effects... and access to an amazing Creative Team :)
You can see it in action here:
Python script here: https://github.com/sontek/snowmachine
If you want bash instead of Python: https://gist.github.com/sontek/1505483
It's harder than you think though. You have to balance a few things. Gorgonia started off as a lisp with a type system. It had all sorts of graph reduction machinery ala G-machines in Haskell. Here's how it looks like with a syntactic frontend: https://asciinema.org/a/7jBPDElEUA1HmNUMNWG2qacFs
Now, if you can't already spot the problem, here it is: it's stupidly slow. I also removed some elements that would make it Turing complete (no loops, no jumps) because liveness analysis and memory optimization is too difficult to do quickly on a runtime basis when your graph gets huge - if it's AOT sure, it works. I removed the stack VM as well (wrote it for artificial gradients). I also removed a lot of "smart" compiler optimization like constant propagation (though work on that is coming back), tree pruning, etc. My current barrier to making this a fullfledged runtime language is hashing.
The one thing I did right in the design is abstracting out the execution engines - this way you can (and I do) have execution engines that do what you need it to be. In the upcoming v0.10.0 release, this notion will be generalized more, and notions of symbolic and automatic differentiation will be blurred
One nice dark horse is inccommand
. When you start writing a substitution, it dynamically shows what the replacement would be. What's really nice is it handles arbitrary regexes. Here's a short example.
Welcome. I can almost swear something like this was posted few months ago, but we are glad to see new people interested. In terms of setup, the install process is slightly slower than gVim if you're on Windows (at least several months ago), but everything else is quite easy. Basically you need to move your vimrc to another spot, and install a python module if you use any python plug-ins. Nothing in your vimrc really needs to be changed, so it's quite easy for you to just give it a shot.
In regards to features, although Vim 8 now also has multi-threading, Neovim still has some unique features. A new hot topic is live substitution. Another advantage is that Neovim has a long list of clients for writing plug-ins (including two for using Go), so you don't need to learn vimscript to contribute.
No plugins? https://asciinema.org/a/ZpaTYQa5IDrwreD6iVk8XhCCF
Okay so maybe you don't want to do all your editing like that; of course some interactivity can be nice. But manipulating raw data before formatting as a general principle can also work well in Vim too. Vim's easy filtering gives you a ton of cool, composable tools at your disposal.
EDIT
And for more complicated formatting, you could try groff:
Shodan randomly crawls the Internet 24/7; i.e. it doesn't do sweeps and it doesn't do a full scan 1 IP at a time. It generates a random IP, a random port and then checks that combination. Has Shodan found anything open recently after you closed the ports? You can run the following command to get a breakdown of when the banners were collected in Shodan:
shodan host --history <IP>
Here's a short video how to do it:
And keep in mind that it takes a few weeks for a result to expire in the results to ensure it wasn't just a temporarily closed port (or bad connection issues which can happen a lot for ICS). You can also submit a scan request to Shodan using the CLI if you want Shodan to immediately crawl your IP and check the ports (this will do a full scan):
shodan scan submit <IP or netblock>
Here's a video on how to do it:
We can also look at the specifics if you email with more information.
I personally love it. Let me see if I can't record some live demos of the autocomplete fancyness I can do with antigen bundles/oh-my-zsh plugins... I'll report back later. Work time!
Turns out it's easier than I thought. Thanks asciinema!
Here's a link to the asciinema recording from dropbox.
And here is how to install the viewer
edit2: let me know if anyone has issues with this... hopefully it records color? i'm not sure.
edit3: okay, I figured it out: here you go
I hope the accompanying book, help section and command-line snippets and videos will help answer some of your questions. If anything isn't clear or you think we could do a better job at something please don't hesitate to PM me or email us at
I will say that our documentation hasn't been the best historically but we're working to improve it. If you'd like to see us go over something specific we're always looking for ideas/ suggestions!
The :find
command is pretty great for file navigation too, and I feel like it's very underrated.
You can bind something to :find *
and then type a letter or two of the file name you want, and hit Tab. Vim will expand and select the file name, and you can open it with the Enter key.
Here's a demo: https://asciinema.org/a/80ny37t1e9yfgsddp1d904bzf
You don't really need a fuzzy finder if you master :find
, although I can understand why people use fuzzy finders. I'm a fan of both :find
and ctrlp, but I've been leaning towards :find
these past couple of months and I like it better so far. Heck, I've been using it for work, and :find
has performed better for me under a 1GB repository, certainly more faster than ctrlp, but more importantly, it's more accurate on the first match.
Indeed, most of the time, :find
is even faster than fuzzy finders because the fuzzy matching algorithms they use (ctrlp's algorithm is especially poor) are just not that accurate.
I have about the same, but I also capture the workflow with Asciinima so future-me can see exactly how past-me was thinking.
this helps a lot in replication too because you can directly copy-paste commands as they scroll by. Asciinima is awesome and like no-one knows about it
Two main things:
The one downside is that since GitHub READMEs don't allow scripts to run, the screencast can only be a PNG that links to the actual screencast, so there's no way to autoplay like a GIF.
Draco is a script to convert reddit thread to Org document. It accepts a url & prints the Org document to STDOUT.
I reference things from the web in my Journal & don't want those links to break so I save them locally. Previously I used to manually archive the whole thread, this automates it.
It's written in Perl & should work on all systems supported by Perl. The dependencies are minimal.
You can access historical information about an IP either via the API or the command-line:
We keep a full history for every IP that Shodan's ever crawled and you can pull that up when necessary. Note that the history isn't searchable so you can only access it when looking up IPs.
I just thought of vim when I saw this.
Start with the following in your code in vim (use vim -u NONE
for best results). Make sure cursor is on the same line when you finish typing.
if (num >= 0 && num < 10) return 1;
Then paste this in ex mode:
exe "norm yyp$h<C-a>F0i0\evF1yF0vF lp"
Then type 16@:
to get the final result.
Here's an asciicast demo that uses a macro instead of an ex command.
I'm sorry, Your Highness. I will be better.
Here is the solution to your replacement question, without a single reference to the help which you could have used to discover a solution all by Thine Self.
Draco is a script to convert reddit thread to Org document. It accepts a url & prints the Org document to STDOUT.
I reference things from the web in my Journal & don't want those links to break so I save them locally. Previously I used to manually archive the whole thread, this automates it.
It's written in Perl & should work on all systems supported by Perl. The dependencies are minimal.
Useful article. However, a few suggestions:
* There are some typos
* serie
-> series
* Vim macros an often,
-> Vim macros, an often
* answer to the later
-> answer to the latter
* with few keystroke
-> with few keystrokes
* but I you might yet disagree on it
-> but you and I may disagree on it
* many use
-> many uses
* markdeown link list
-> markdown link list
* Code blocks & inline code is highly recommended for posts with keyboard commands. Check out Format text article my medium and look for "Code blocks & inline code". Just to illustrate: There's a difference between saying " press ‘q’ " and " press q
". You would want your readers to type in just the letter q
and not with single quotes.
* Could be just me but the font size in your GIF is small. It's hard to see the text and the operations. I would suggest increasing the font size and recording the GIF or using something like asciinema
Good job with the intro article. I'm sure it may help a lot of vim users with usage of macros.
Starting from a list of the days, ^<C-v>GI0 => "<Esc>
to insert the leading part, <C-v>G$A",
to insert the trailing part, ^<C-v>Gg<C-a>
to increment the numbers.
Add in the first and last lines, then finally >i)
to indent.
hi Christian - what's up with the "millisatoshi" units in the asciicinema video? If LN txs are real bitcoin txs, how can it have sub-satoshi units?
(video for reference https://asciinema.org/a/ergldrzd43j08klix08hf9yl3 )
Edit: found the explanation of the probabilistic payments, is that already implemented too?
Meh, not really.
As one poster in that thread mentioned: There's no scrollback bar.
Personally I don't really care about website dependency, but I would like to have 2 things: speed controls and ability to view that key (combination) was typed.
edit: And uhh... not this crap again please - curl -sL https://asciinema.org/install | sh
There are some guidelines in $VIMRUNTIME/colors/README.txt
You can :edit
a colorscheme you like, :saveas mycolorscheme.vim
, and
edit it as you see fit. Don't forget to change g:colors_name
.
My tip. If you are changing terminal colours, it's easy to adjust them and see the effect in real time with a couple of simple mappings:
:nnoremap ( <c-x>:y x|@x<cr> :nnoremap ) <c-a>:y x|@x<cr>
Demo. here: https://asciinema.org/a/7FIVvjv7r3hUbZZLL0921GKFY
for
is a horrendous term to search for in the manpage.
This is a great example of how the Texinfo documentation makes things easier. You can go directly to the documentation for <code>for</code> using info bash for
.
Yup, you should just give it a chance, it’s awesome. And it’s pretty much what I use as my console calculator too, so much more natural than Python IMO. And when you add a bunch of REPL enhancing packages, it becomes ever sweeter (OhMyREPL, TerminalPager, UnicodePlots, etc).
In case you find it interesting, this is my Zettelkasten extension that I use with my text editor: https://github.com/alefore/edge/blob/master/rc/editor_commands/lib/zk.cc
You can see some of that at work here: https://asciinema.org/a/314506
Awkventure - repo
Finished this weeks features. I'm starting to run into some obstacles with awk, definitely now that more complicated algorithms are required (such as pathfinding). A* would be rather hard/annoying to implement in awk, so for now I've just made all monsters move in the direction of the player, with some randomness thrown in for good measure. As it stands now, the game doesn't really need any good pathfinding, especially with the small rooms and limited fov.
Other than that I've also added basic melee and ranged combat. Dead enemies leave corpses, and if the player dies the game ends. There's a message log now, which probably needs some more work to make it intuitive to read. The interface has also been improved.
Wanted to link this there, hoping to get this out. Got frustrated over the last couple months trying to maintain xo's code and that I had to deal with 5 different command line tools for interfacing with databases.
Now that all the databases run natively on Linux, I'm hoping to further expand xo's support, and do some massive cleanup of the code base. As such, I needed a single, universal tool to just execute simple queries against the database, and so built this.
I'm hoping that in time usql will be as feature complete as PostgreSQL's psql, and possibly even surpass it, and add some cool / exciting features.
The great thing about this, is that it'll work with every database! Already usql supports the major relational databases, and I'm hoping to add support for all the "NewSQL" databases as well. Some of the NewSQL databases are hypothetically compatible already (Cockroach, MemSQL) as they implement compatible wire protocols to one of the other major databases.
EDIT: I've added an asciinema recording here.
I placed on the leaderboard a few times, but my main goal here was getting solutions running as quickly as possible. I updated many of my solutions based on what others have done, but the repo does have the full history for any day.
I have all 25 days running in 2759.28ms total. For some days I had to resort to parallelization and highly optimized MD5 implementations. For other days, replacing a set
or map
with a vector
or array
shaved off tens of milliseconds.
All compilation done was -O3 -march=native -flto
(clang) running on my 2016 15" MacBook Pro on battery (not plugged in). The repo's README has loads more information including file sizes, time to solution, and header files utilized.
Asciinema recording: https://asciinema.org/a/c43xa3f9u2uh3830x6qysf7va
A recommendation would be to use asciicinema to capture a new highlight of your repo.
Also, please include notes on your releases, just having a version number does nobody any good.
I posted this a few days ago: https://www.reddit.com/r/commandline/comments/lddaha/time_tracker_using_fzf_as_the_ui_element/
TLDR:
fzf
to provide the UIPros:
fzf
's selection features (e.g., type a query string to filter, then TAB to multi-select or Ctrl-a to select all) to see summary only for selected rowsCons:
On behalf of the entire "vim community" I apologise that your experience hasn't been A*-super-best-class.
Unfortunately, the fact is if the other people in the "vim community" are anything like me, they are probably:
They are probably not:
> Let me know when you decide to make the install smooth and I would love to try it out again.
It really isn't all that hard.
But I appreciate this is more effort than clicking some UI widget or other in VSCode.
To give you some impression, in my last 2 weeks off work, I implemented something "smooth" for vimspector: https://asciinema.org/a/Hfu4ZvuyTZun8THNen9FQbTay
That was pretty much my entire vacation and now ongoing forever. I'm just saying that these things aren't super easy. If someone were to come in and contribute something similar to the vimspector installer, I'd be super happy. But believe me, with every evolution of YCM we try to make installation and maintenance easier. We have a grand plan, but what we don't have is huge amounts of time and resources to spend on it.
Week 5 was the toughest so far for Rogue in the Dungeon!
The week started with adding items to the game world, which took quite some time but was otherwise uneventful. Picking up items was easy enough to implement, so I felt positive about adding a "drop item" action too for a more complete inventory management.
Alas, I found out my system (based on an event queue) made it impossible to drop items! I don't want to go into too much details. Let's just say that the event responsible for removing the item from the inventory and dropping it to the ground has to assign a new ID to the item, as it switches ownership from the player to the world, but has no way to communicate the new label to the outside.
That prompted a hasty and desperate refactoring of the very core of my game system. It took a relatively short amount of time, but it left the code in a hot mess. As a consequence, now everything looks a bit fishy and is more bug-prone. I would need to check everything carefully and rewrite some parts, but there is no time left this week. Even more worrying, I thought my design was pretty solid, and instead it turned out it cannot even manage dropping items! So I now feel kind of insecure about the whole thing: what are the chances that, despite the quick fix I came up with, the system will not fall apart soon enough?!
Overall, I managed to implement items and inventory management, plus a health potion which can be used to restore HPs. I didn't even start with the lightning scroll. I don't expect to have much time next week either, so I will proceed with the tutorial and leave the scroll as a nice-to-have for future work.
Edit: here is <img src="https://asciinema.org/a/348881.svg" alt="a short video showing this week progress">.
I also realized the repo was private and unaccessible. Now it should be public: <https://gitlab.com/Enc/rogue-in-the-dungeon>
Hey! Chaos Engineers!
This is our first attempt to deep dive into Chaos Engineering. Actually, this project is PoC and currently in ßeta. If you any interest in this field, please feel free to give us a feed-back, in order to improve and continue to our project. Any feed-backs are welcomed.
Some features:
asciinema: https://asciinema.org/a/348527
Have a very safe and productive day!
https://asciinema.org/a/1TRlzNNWSHR247RN7VSsvQ2iu
This is the smallest way to recreate it.
#!/usr/bin/env python3 import os import re
line = b'Content-Disposition: form-data; name="file"; filename="../../../../../etc/profile.d/evilscript.sh"' output_dir = "/tmp/tmp"
fn = re.findall(r'Content-Disposition.name="file"; filename="(.)"', line.decode("utf-8", "backslashreplace")) file_name = fn[0] fn = os.path.join(output_dir, file_name) print(fn)
it should output "/tmp/tmp/../../../../../etc/profile.d/evilscript.sh".
You could prevent it by modifying line 144 from
file_name = fn[0]
to
file_name = os.path.basename(fn[0])
I don't want to link my github to my reddit account, so I'll let someone else make an issue.
> When running a test on a single core FreeBSD guest, the system freezes until traffic is stopped. It only happens to FreeBSD when the guest has only one core. https://asciinema.org/a/205477
Is this a known regression/bug with FreeBSD 11?
Something that I feel is missing: Where are the extended colors/attributes kept? The CHAR_INFO only has a WORD Attributes
field, which is effectively only 16+16 colors (foreground and background). This is somewhat important for 3rd party Consoles (such as ConEmu/Cmder/Take Command), because they can't really get to the actual color of a character. ConEmu/Cmder simulates this by keeping the color in its own buffer, but this is obviously a very big and ugly hack, and it has serious repercussions (such as effectively losing the color once it scrolls out of the screen).
EDIT: I'm guessing that this will come in a future blog post, I just want to make sure it's addressed.
EDIT 2: I would love to have the functionality of recording screen output, in the way that asciinema does. It should be "easier" to modify ConEmu so that it recordsd/exposes its buffer for this, but my C/C++ skills are not good enough for this.
If you feel like trying your regex skills with live feedback, you can also use inccommand
'inccommand' 'icm' 'inccommand' 'icm' string (default "") global
"nosplit": Shows the effects of a command incrementally, as you type. "split" : Also shows partial off-screen results in a preview window.
Works for |:substitute|, |:smagic|, |:snomagic|. |hl-Substitute|
If the preview is too slow (exceeds 'redrawtime') then 'inccommand' is automatically disabled until |Command-line-mode| is done.
I like the split preview, but in this case it's probably not the best of helps.
Hey, LXD upstream here. :) LXD itself has support for usb device passthrough. In essence, it is as simply as:
lxc config device add <container-name> <device-name> usb vendorid=<id> productid=<id>
Where productid=<id> can even be left out to passthrough all devices from the same vendor.
The neat thing is that LXD will listen dynamically meaning that as soon as the device shows up, LXD will process the uevent and then plugin the device into the container.
Here is a demo: https://asciinema.org/a/171520
The problem is that currently the VM that LXD is run in does not support usb device passthrough. Basically, what needs to happens is that devices are passed to the virtual machine at which point LXD can just pass them into the container.
Here's a visualization that a colleague made, with ASCIIart: https://asciinema.org/a/XgRN13OQLRkZl8P970dufqbZd.
The viewport doesn't change as in your visual -- which is a nice effect too -- but it's fun to watch.
Break Out Of Hareka's Underground github link
I skipped last week, because I was busy with some other stuff, so there was not that much to say. Here it goes:
See here, this is kakoune (vim-inspired editor, but way different, supports multiple cursors): https://asciinema.org/a/oQ2CXKEtdpUYmDM4AUbwoHGBW
Here I copy-pasted the operators of the C language and reordered them, quoted and separated by commas. The trial and error is included and that's where multiple cursors shine: you have instant feedback on what you're doing and whether it's wrong. Feedback is absolutely essential in everything, and when I used vim I felt that a lot of time I was doing things in the dark.
Keyboard-based text editor need even more feedback than usual ones, because mouse is naturally advantaged here (eyes+hand being the controller actuator).
Not sure why that person thinks bitcoin is getting less used, transactions continue to increase and exchange volume is continuing to increase across all markets so the evidence suggests that usage has been continuing to increase, not decrease.
As far as layer 2 solutions, there has been a lot of work on various implementations of lightening network and sidechains, and there is actual written and in some cases working code for these, so hardly vaporware. There already exists a working Elements sidechain, in addition a demonstration of lightening network just last month, these are in addition to other work being done in this area.
It's unfortunate that there is a small subset of the Bitcoin community that seems to have this impression that there is no scaling work being done when it is quite the opposite, and it's even worse that a particular public figure in this space wants to block all of this work done that will help make Bitcoin a truly scalable worldwide global payments network.
/u/geowwy answer is good when you want to edit code in many places.If you just want to yank and paste block of code you can use Visual-Block mode ^v
.
I ... cannot... resist...
qq/) \u<CR>wct"%s<Esc>/""<CR>pEa<CR><Esc>q2@qddZZ
I really have even too much fun with this kind of stuff.. I had to try it out for real...
I should seek help..
I recorded myself making the edit here.
My Vim-speed is not the fastest in the world, but I like this approach better than regex search and replace because it's more interactive, and I can see what I'm doing as it happens. Now, here's an outline of what I did (these are not exact keypresses) and some critique for how I could have done it better:
vi{V
here. Not sure why I wanted to repeatedly press j
...S}
return new Address
- you get to see my slow typing speed hereqa
), then the edit which is df>.df.."nyiwf(vabc = _faker.<C-r>(),j^q
@a
There are undoubtedly more efficient/better ways to do this, but this is how I would "Vim this".
Thank you! It works perfectly with `dyn` instead of `impl`. Once I changed the signature, I could just use the option variant `None` again without the turbofish.
The reason I'm passing in a function is that I would like to separate the concerns of the sudoku solver from the display function. It might be displayed in the terminal (which is what I'm using for now, see https://asciinema.org/a/433999) - and later I would like it to be rendered in a web browser. So passing a callback closure seems to me to be the best solution if I want to keep the solver itself agnostic about the display functionality.
They will take a similar amount of time as normal Spacelift proposed runs.
They run in the cloud / on your private workers. The first thing the CLI does is upload the local directory to S3 (while respecting ignore files). The time this will take depends on the size of your files and throughput of your connection. I.e. in the case above there are just .tf files, so the upload is literally just a few kilobytes, which takes <1 second.
In order to get a feeling check out the asciinema link in the post, as it's realtime: https://asciinema.org/a/FMKQ0iANzSRmcKGeTaFb8coDX
Ah, that’s what I thought but wanted to confirm. I think it’s awesome to try to do things from scratch, but I was a bit puzzled when you mentioned this. LightGraphs.jl I believe is a package meant for graph theory work (which I know almost nothing about), not to be confused with plotting. If it’s just plots in the terminal you’re after, checkout UnicodePlots.jl.
Other REPL goodies: OhMyREPL, TerminalPager, REPLTreeViews, and I’m sure there are others. Some of them compose quite nicely: https://asciinema.org/a/2XMWIinOJj32Xn9A5uu3wBrlm
I love vim-surround...but I'm not sure what "back and forth" this particular example saves you from. There are many ways to skin this cat, but here's one macro, given the scenario in the article:
yi"ca"{<C-r>0 ${someCondition && "style4"}
}
It achieves the same thing without any back and forth: https://asciinema.org/a/u5KHLzOvY6TToj69DQd7cdklW
Golang https://github.com/A-UNDERSCORE-D/aoc2020/blob/main/2020/11/solution.go
Pretty fun, yet again using maps as planes. But it works well
It can render as it goes, though its ascii based, you can see that here: https://asciinema.org/a/W9lntg7WqXg5QeuzH0sPNkXw3
there are commands that can do that from the shell.
script
I think is what I used years ago for a similar situation.
https://linux.die.net/man/1/script
I recall a similar tool that could make shell session 'movies' but that is not exactly what you asked for.
but it is a neat tool to know about...
Here's a visual I just whiiped up on my box with asciinema that takes you through the entire process. I didn't install any libs or anything, but you said you already have them so you should be ok.
Thank you! It makes me very happy to hear that people find it useful.
My individual notes correspond to each section in the longer articles. They look something like this:
# Title of the section
Some optional text.
Perhaps a few paragraphs.
Related: * [Some link](05r.md) * [Other link](04b.md)
That's it. Sometimes the text has links also (and other markdown markup).
The articles that in generating are just based on navigating this structure, following the links (and not directly including the "related" bullets, just using that for subsections). Each title just becomes the name of a section.
You can see a few actual examples in the various notes I navigate through and edit here: https://asciinema.org/a/w02l3Yx2OGMLtvkVNbvbExOMS (that also shows how I use my text editor, but that's probably less interesting to you).
Hope that helps!
Long time since I last did some work on my roguelike project: Rogue in the ark developement is stalling due to some limitations of its engine design, which makes it difficult to add further complexity and features.
One particularly tricky issue is handling animations. Rogue in the Dark has a very simple game loop: get input from the player or the ai, update game world, render. The issue is that there is no way to show what happens during the update phase: knives may fly around and bombs explode, but none of this will show. This is a very poor state of things, so I started experimenting (starting with a blank project) with an event-based engine that just "updates" one event at a time. This is a little demo: notice the rock flying one step at a time, and some simple particle effect.
https://asciinema.org/a/wBvNztdfTb3j01QXx9Z7lXopf
I am now in doubt whether I should refactor Rogue in the Dark (which looks like a huge task) or develop the new project.
I am also wondering if my event-based engine is solid, or if it will show weaknesses as I start adding more complex content. Maybe I should write a detailed post to ask for feedback?
EDIT : Example usage here
Actually, I added some features the author talked about in his talk, like incrementally growing selection. There is also not-that-bad-but-can-be-better completion system, that only suggests items that actually are visible in this scope. I'm dreaming (and working on) an even better suggestion filtering based on types (for languages where it is actually possible), but it is not yet implemented.
Treesitter integration (in the way this plugin uses it) is pretty mature, I did not encountered any bugs actually.
In the README you'll have some examples of things you can do with the plugin, and feel free to ask any further question on the gitter ;-)
Last but not least : completion-nvim is crazy good, it is fast, lightweight, and the development goes fast.
'hlsearch'
will highlight all matches however the match your cursor is currently over can be tricky to distinguish. The cursor can be tricky to find after a jump. The goal is to highlight the entire match that is under the cursor to emphasis the current match.
I've installed Linux Mint in a VM to help. Linux Mint is really just Ubuntu/Debian, so the Ubuntu instructions on the page you linked are what you'll want to use.
Here's an Asciinema recording of me installing, configuring, and connecting to ProtonVPN inside Linux Mint. https://asciinema.org/a/275958
This is not a video, it's an actual text recording from my terminal, so you can pause/scrub like a video, but the text can be copied and pasted if you need help with the commands.
I used asciinema to make little films of myself using the terminal, and then I used asciicast2gif to turn those films into gifs.
Hey OP, try installing the termux-api
package, it contains a bunch of termux-* commands that you can write simple (or very complex) bash scripts. Or python too using subprocess... The commands by themselves are quite useful.
See here: https://asciinema.org/a/250580
I use zsh with history-search-multi-word plugin. It changes your ctrl-r view to a list and adds better searching. You can check it at https://asciinema.org/a/88954.
Here is my zshrc with the plugin https://github.com/Trojan295/dotfiles/blob/master/.zshrc
I don't use Neovim. Is this an example of how virutaltext
is supposed to behave? If so, I kind of like it. I wonder if it would get annoying after awhile though
touch
interprets every argument as another file to update the timestamp (and create it if it doesn't exist). So:
touch file1 sub/file2
will attempt to create 2 files (file1
& file2
, being the later inside the sub
folder)
Little demo of various touch
uses: https://asciinema.org/a/uKppd5MBQ2COs0JOQ1MCNQ5De
Alternatively, you can just use nano /path/where/you/want/it/placed/filename
this 'saving' the file will create it, there is no need to call touch before. (note nano
is just an example, this works for pretty much every single editor)
Other little tips:
< filename
filename
in the stdin of a command (in this case base64
) without using pipes
base64 -d < filename
sudo !!
​
Here is an asciinema of the tool in action.
Got the idea while talking to my mom about Captain Midnight. Thought there must be an API to see satellites so I hunkered down and wrote this tonight. Not super advanced just using API calls but still pretty cool tool. Hope somebody finds some use in it :)
Thanks. Since you mention screen-scraping, I was just reminded, you might want to include a small note or something in the Readme regarding Asciinema. It is a popular tool to record terminal casts (e.g. the recent VOIDSPACE game had one), but it doesn't seem to always work with the Brick TUI. For example, I had some highlighting (the one shown in the video as "current link"), but in the recorded casts, it would show up as italics (even when testing it on the same machine). So I ended up using another tool for recording.
I've also recorded a short asciinema cast in order to show how I did it:
https://asciinema.org/a/wktW7BjmcujcypGKLaHBbSJec
I'm more entrenched in the OCaml ecosystem myself, but if you're interested in learning more about core
and the Command
module, you can read about them in: http://dev.realworldocaml.org/command-line-parsing.html
You'll just have to mentally convert the OCaml syntax into Reason syntax.
So I've found a solution to my problems thanks to /u/sylvain_soliman.
nvr --remote-tab-wait-silent +'-tabmove' +'set bufhidden=delete'
autocmd BufReadPost,BufNewFile .git/**/* set bufhidden=delete
autocmd BufReadPost,BufNewFile .git/* set bufhidden=delete
autocmd TermOpen * set bufhidden=delete
This makes git call nvr which opens a new tab in neovim instead of nesting neovim in neovim. The autocmd's makes shure the git buffers are deleted when closed which in turn lets neovim-remote know that it should continue.
I illustrate a rebase here: https://asciinema.org/a/JMo3jPYj9Ou3M5x0CquzU9izc
I put together a small example of how it should work
https://asciinema.org/a/FUjTJYgMn0fcIKaOoZuAFNvUN (excuse the runuser hiccup near the end and the fact I didn't put the i variable inside the loop.)
As a service or whatever you'll have better options to run it as that user. I just had to do it that way to do it all in the terminal
As much as I understand WEB you can simply download asciinema's .js player and serve it from your own server thus eliminating external dependency.
<script src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
with smth like src=js/asciinema/14.js
instead.
Ain't I right?
May be not handy to update the player itself but gotta work correctly. At least that's what I thought of asciinema's embedding into my own website build on top of hugo.
computers lack the ability to have context of any of the data. It takes a human to do that, so it would not be able to set scenes like it did.
It definitely would not know that the waitress was doing the act of delivering, nor would it know that she was a waitress.
So at best, this guy fed a tool like this the script of olive garden commercials, then manually pick from the list of words it suggests to make a story.
Gotta have that human element in picking
For Funzies, I did this with that tool with it's included batman script.
computers lack the ability to have context of any of the data. It takes a human to do that, so it would not be able to set scenes like it did.
It definitely would not know that the waitress was doing the act of delivering, nor would it know that she was a waitress.
So at best, this guy fed a tool like this the script of olive garden commercials, then manually pick from the list of words it suggests to make a story.
For Funzies, I did this with that tool with it's included batman script.
step-by-step I'd imagine you could just use screenshots with some annotation, if you submitting this as a pptx then you can't live demo but you could include a screen recording of your terminal while you were using it.
If you want to link something a little more techy then take a look at https://asciinema.org/ but it wont go in a pptx though it will allow you to playback through your program and screenshot it.
None.
https://asciinema.org/a/4w1ARhM8yeTAJtBw5K6Zj1GII
I prefer just typing the thing out as I find it less distracting. But I guess it's down to personal preference.
Using pairs, I found myself typing <Esc>la
to skip over brackets, if that helps.
Here is a very simple python script that establishes an ssh connection to a switch from a linux machine and runs a command to a switchport using tclsh. The output of the script shows you the before and after config while it is taking place. The config change is minor but can serve as a template for more complex changes. https://asciinema.org/a/177308
Though beware that this would make it difficult to see what language blocks are set to and their parameters without highlighting the line, so I'd also get used to making these blocks by typing <s
[Tab] and then the language you want to avoid typos on invisible lines.
To get over the parameters being invisible, :PROPERTIES:
blocks next to your headings or at the beginning of your file could help a little too. These things stay collapsed generally, so they aren't a multi-line eyesore all of the time, but here's an example of these with everything expanded out. Notice the parameters of the block output at the bottom of the screen?
That said, there is actually a reason for Org's block format, and it's a part of a more general block format that Org mode uses for things. Maybe seeing how they are used on a basic level might help you like them a little more.
I recorded a quick little thing to describe Org blocks a little, so hopefully you find it helpful..!
Hey all, I'm doing something a little different this time with my software which is to share it earlier rather than later to see if there's interest in this tool. The code is currently highly in flux and the first provider supported to run cloud benchmarks is only DigitalOcean.
DigitalOcean does not offer cpus beyond 42 cores but was the fastest to implement due to their quick droplet startup speed.
I have a roadmap in place: https://github.com/deckarep/corebench/issues/1
A demo: https://asciinema.org/a/l7q1KEz6knaH07z6zq7x2Ki8L
And additionally for anyone wondering why I made this tool it was really to scratch my own itch. Please see the README.md on why this tool exists and what the benefit is on benchmarking software on a large number of cores.
I shall follow up with a blog-post on why this tool was created and how it can help shed light on applications that exhibit performance problems for various reasons.
Cheers!
In such case you would need a way to integrate that language with Vim itself, which is impossible in general case.
Instead easier and more powerful way to do so is to enter your code in place and filter through interpreter
Asciinema caps pauses to 2 seconds in my recording, which kicks in when I sit around and think what to type next. Then the playback speed is 3x in the link to keep you from falling sleep while I type.
Here's one with 1x playback speed where you can get a sense of the plugin's speed: https://asciinema.org/a/q9I5eNblDLCoOiQlZjm1ce0ba?size=20&speed=1&theme=tango
Worth noting is that this demo is on a blank file. I've used the plugin on codebases of 10-20k LoC, with multiple-package builds, and it has worked well. Depending on if you're using interpretation or object code compilation, the initial startup can take some time (this is GHCi startup straight off). When booted things are fast, though, in my experience. Others have reported it surprisingly fast for their large projects, also.
I tried a bit with the PureScript compiler codbase to give you some numbers. It has ~150 Haskell source files at ~26k LoC. A clean startup with -fobject-code
, loading all the modules, took 33 seconds on my laptop. Reloads are <1 second, hard to measure but I'm guessing 200-500ms.
Also, the plugin is a simple wrapper on top of GHCi, so whatever speed you have there, you'll get the same in Neovim.
It's important to know how to use both the :s
command and the dot-substitution, as they are native vim features that will almost certainly be available.
But,
the point of multiple cursors is immediate visual feedback. I don't have to think to select exactly the portions that I want to change. For example, it's really really easy to skip a multiple cursor if you don't want that word by pressing <c-p> to navigate back, and <c-x> to skip to the next one.
I've put together an example of what I mean: https://asciinema.org/a/XIZqBK5YxdpXnwbneP7D1BwWg
that would be wise.
personally, i never shorthand name my scripts. just typing "dwa" follwed by the TAB key in a terminal lets tab completion automatically spell dwarffortress out .
I got basic functionality to work but I don't get the ascii bounding box around the output results in the terminal like in your video. When you do the select * from test_table here: https://asciinema.org/a/HTc1gAS2gHxaL7yCECvwKUUPs
I see I can use the command: \pset border 2 but that ascii art border is sloppy with plusses, pipes and underscores.
Maybe that's something with psql or my font settings?
> Update: New screencast is available at https://asciinema.org/a/104572
Sorry, that screencast GIF is out of date: it's from back when this plugin used Unite instead of FZF (it definitely needs FZF now, but there's nothing preventing you from having both Denite and FZF installed simultaneously). Good point about it being too fast, I'll record and publish a newer version. Thanks.
PS: Tips #24,#25, and #26 of /u/drewjr's book Practical Vim covers this sort of stuff too. I highly recommend this book.
I've also made this asciinema cast to show an example.
Yes, most of PHPStorm keybindings can be used in Intellij. I'm just saying you did an awesome job. Anybody with time and experience can contribute. There's one for vim. There's asciicinema for terminal tricks. And, you can actually run PHP/Ruby/Javascript with Intellij IDEA ultimate edition if you have appropriate plugins.
On their asciinema demo (https://asciinema.org/a/8863) that is linked on the "See more here" text on their GitHub page:
>cloud@Matrix gitql (develop) $./gitql -q "select author, message from commits where 'Fuck' in message"
And saw
"| cloudson | Fuck travis intragration | "
>cloud@Matrix gitql (develop) $./gitql -q "select author, message, date from commits where date < '2014-04-10' or 'Fuck' in message"
Where is the commit that contained the word 'Fuck'?
Update:
>The limit default is 10 rows
Oh, perhaps the commit got truncated from the results because there's already 10 results; apparently just not a lot of forethought went into that demo.
/u/TheBB, default vim behaves exactly like emacs with evil in this regard. If we are to use blockwise enclosed operations we need the vis plugin in vim.
Here's a demonstration
I think they're a neat way to make very quick demos that can impress someone new to the concepts, but frame by frame would be really nice. Better yet would be using something like asciinema with emacs.
That is limited to the terminal though.
I've optimized the compact already optimized zsh-syntax-highlighting part – by 40% in total – HSMW is now really fast – here are as much as 20 complex history entries per page: https://asciinema.org/a/89406
> Das mit der Rechtschreibung lässt sich denke ich beheben, vor allem weil ich den Artikel irgendwann Nachts geschrieben habe ... :D
So etwas in der Art hatte ich mir schon gedacht. ;-)
> Man kann ja mit --cap-drop Rechte "fallen lassen", sodass der Prozess im Container weniger Rechte hat. Lässt man das weg hat der Prozess innen ja immer die Rechte vom Nutzer mit ID 0 oder?
Nein. Ich habe hier eben mal ein Asciinema diesbezüglich erstellt, um das zu demonstrieren. In dem von mir verlinkten Blogbeitrag von Docker kam das m.M. etwas kurz: https://asciinema.org/a/49994
> Ich hoffe ich stelle mir das jetzt nicht falsch vor, aber für den Container ist die Festplatte auf der sein root-Verzeichnis sitzt ja in Wirklichkeit nicht zwingend eine eigene Festplatte. Daher die Bezeichnung virtuelles Gerät.
Hm, dann würde ich es eher virtuelles FS nennen.
> Wie ich berlin_priez schon geschrieben habe, bin ich derzeit noch am experimentieren mit Containern. Weitere Artikel werden da mit Sicherheit folgen.
Immer gern. :-)
I put together a demo of some of 1.9's features here:
https://asciinema.org/a/7qdrtjx2wjdd0v7t3vs45g05o
Recreate/contribute here:
https://github.com/ianmiell/shutit-docker-1_9/blob/master/README.md
or @ianmiell
I second /u/josuf107's solution, but I wanted to provide one similar to the original. It's not as smooth but I'm a slow typist who makes a lot of mistakes and there's a limit to how many times I bother doing it before getting fed up: Asciicast. On the other hand I do start off with an empty file.
My method is:
lol It's not. (Vim completion sucks because it blocks). But I think it's safe to say people don't use vim for it's completion support ;)
You can get ala inline completion with YCM, https://github.com/Valloric/YouCompleteMe but I don't use it because IMO it slows down vim too much
I re-did it using a better terminal recording service and with YCM https://asciinema.org/a/18061
ps: I injured my index finger on my right hand which makes my vimming a lot slower.
Hey!
With Spacelift you can use the spacectl CLI tool to do exactly this.
Here's an asciicast of it in action: https://asciinema.org/a/FMKQ0iANzSRmcKGeTaFb8coDX
It uses your local files to run a plan in Spacelift using credentials stored in Spacelift. We're not supporting Terraform Remote Backend, as that's a proprietary API we didn't want to tie ourselves to. (To be clear, we do work as a Terraform State Backend though.)
I've added a build warning that should be pretty hard to miss.. What do you think?
I don't want to make it unsafe
, but I would like instances of this macro to trigger #[warn(unsafe_code)]
. Unfortunately, I wasn't able to get that working.