Posts
3333
Following
202
Followers
337
Linux kernel maintainer. Compilers and virtualization at Parity Technologies.

@janantos BTW, only auto-complete I tend to use is CTRL-x-CTRL-f which auto-completes path in a vim buffer ;-) For symbol lookup in Rust I use rusty-tags.

rusty-tags also lookup through the sources of the external crates, stdlib etc., given that I have this in .zprofile:

# rusty-tags
[ `command -v rustc` ] && RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/library/
[ -d $RUST_SRC_PATH ] && export RUST_SRC_PATH

And in my .vimrc I have:

# rusty-tags
autocmd BufRead *.rs :setlocal tags=./rusty-tags.vi;/,$RUST_SRC_PATH/rusty-tags.vi
autocmd BufWritePost *.rs :silent! exec "!rusty-tags vi --quiet --start-dir=" . expand('%:p:h') . "&" | redraw!

I think it like that if I downshift the phase of code I write then I think it through better, and in the end I tend to save time, and have more in-depth understanding of the system I’m working with. With ctags integration I still get quickly to the API references given that they are inline the source code.

My philosophy is that it is better to use software that does not require any plugins in order to work it for you. E.g. I’d rather install VSCode than try to make vim/neovim work like VSCode. This is why I have Sublime Text license for meetings, doing graphs with Mermaid and stuff like that.

1
0
0

Jarkko Sakkinen

Edited 3 months ago

@pinkforest @johnnydecimal @danderson Because we live in open source supermarket ATM ;-)

Back in the day when software was not working, you read the manual, and learned all the details, and finally mastered software.

These days something not working as expected:

  1. Install a plugin
  2. Switch the software and join the rival camp.

Quite often plugins just dumb down the feature that was pre-existent already in the original software, if the manual was read ;-)

0
0
1

Jarkko Sakkinen

Nice trick in Aerc that I just learned to share IMAP account for personal and kernel.org account:

~ main
❯ cat .config/aerc/folder-maps/kernel.map 
personal = INBOX
INBOX = kernel

~ main
❯ grep folder\-map .config/aerc/accounts.conf
folder-map		= ~/.config/aerc/folder-maps/kernel.map

Should be self-explanatory ;-)

#linux #kernel #aerc #imap #email

1
1
1
@janantos Still I think hx is the best I've tried from modern editors. E.g. Zed I could use only meeting notes because it does not work in terminal, making it totally useless for my workflow.
1
0
1

@janantos I actually tried for week or two last Dec but being used #vim from 1998, I quickly realized that I’m more or less a lost case ;-)

I.e. nothing wrong in the editor but it is not Vim. I also used NeoVIM for couple of years but even that did not work out because of quite minor details in implementation do not work exactly as in Vim (one example is interactive shell command e.g. :!sudo rm -rf /).

So I’ve stopped trying to change myself in this area ;-)

2
0
2
@janantos that is were I (originally) learned this :-) Love the help system. You can often see from documentation to amount effort and love that has gone making it.

These days I often like to also use the web-version: https://vimhelp.org/
1
0
0

Jarkko Sakkinen

Edited 3 months ago

One of the most important things to understand in Vim are @: and @@. After learning them, there is rarely need mapping ex-mode stuff to keyboard shortcuts.

Already plain vim has two languages: the operator language and vimscript. By learning all the cool tricks of the former, it is often case that there is no need to do anything with the latter. Often plugins are installed because of lack of knowledge in the operator-language ;-)

#vim #neovim

1
0
2

Jarkko Sakkinen

Edited 3 months ago
It is marketed as better Docker but the gist for me is that this implements same as WSL2 for macOS!

Why run Linux on macOS? Learning peculiarities of ARM64, testing kernel and for does brain good to try out different things :-) I've learned a lot about syscalls by comparing behavior of Linux and macOS command-line tools.
0
0
0

Jarkko Sakkinen

On #macOS least tedious way to run ALSO full #VM's IHMO (I don't care about #Docker): https://orbstack.dev/

#Apple sucks deeply providing #developer experience but this seems make things somewhat usable. Invention in #orbStack is that VM's use bind mounts (i.e. a bit like #WSL2).

In addition it has great preset gallery, got my Fedora up and running within 3 minutes.
1
1
0
@backslash Ah, I read your original post again, and apparently got it wrong. My bad, sorry.
0
0
0
@backslash Hmm. In GNOME (Fedora) I just go to keyboard setting, and add 'fi'. After that Super-SPACE just works (in my case at least). I use almost unmodified Fedora latest in my main Linux workstation.
1
0
0
@raven667 Never tried Konsole, and I've used tmux for past 10 years, which does have splits. So it takes care of my tabs and splits ;-) Main reason it being ubiquitos, i.e. takes care of split also in remote machines.
1
0
0
@chrisdenton I'm considering a T-shirt design:
0
1
1
@chrisdenton I'm considering a T-shirt design:
0
1
1

Jarkko Sakkinen

Edited 3 months ago

@chrisdenton So I noticed now that replacing rs file with ANSI escape sequence of any kind but long enough makes rustc to throw error dump like the one I got.

E.g.

\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)\1\e[38;5;015m\2uu\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)

works pretty well ;-)

1
0
0

Silva: How to use the new counted_by attribute in C (and Linux)

https://lwn.net/Articles/982275/

0
4
0
Show older