<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dev_env/core/vimrc, branch main</title>
<subtitle>Development environment setup: containers, SSH, port-forwarding, tooling
</subtitle>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/'/>
<entry>
<title>tmux, vimrc: non-blocking clipboard, yank to local and remote, prefix ] pastes remote then local</title>
<updated>2026-11-10T02:47:53+00:00</updated>
<author>
<name>hc</name>
<email>haocheng.xie@respiree.com</email>
</author>
<published>2026-11-10T02:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=589c3e06d8ac241f8ec3cdd1919a31cbe0c8737e'/>
<id>589c3e06d8ac241f8ec3cdd1919a31cbe0c8737e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tmux, vimrc: yanks also go to the local terminal clipboard via OSC 52</title>
<updated>2026-11-10T01:39:10+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-10T01:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=402a854a195ea1e63c622edeee5dbbc802441d53'/>
<id>402a854a195ea1e63c622edeee5dbbc802441d53</id>
<content type='text'>
tmux: set-clipboard on, so OSC 52 written by vim inside a pane is forwarded
to the client terminal (external dropped it). vimrc: TextYankPost writes @"
as OSC 52 next to the existing ssh push; base64 via the base64 command since
base64_encode()/str2blob() are newer than vim 9.1.83.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tmux: set-clipboard on, so OSC 52 written by vim inside a pane is forwarded
to the client terminal (external dropped it). vimrc: TextYankPost writes @"
as OSC 52 next to the existing ssh push; base64 via the base64 command since
base64_encode()/str2blob() are newer than vim 9.1.83.
</pre>
</div>
</content>
</entry>
<entry>
<title>tmux: history-limit 10000; vimrc: gr references with ]r/[r, ]e/[e next/prev error, \l/\L list errors (file/project), drop gi and vim-matchup</title>
<updated>2026-11-08T18:27:30+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-08T18:27:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=c647d422cd001c7845bcec05c06fdbd54b3efec4'/>
<id>c647d422cd001c7845bcec05c06fdbd54b3efec4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: find language servers on $PATH (exepath) instead of hardcoded install paths</title>
<updated>2026-11-08T16:50:43+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-08T16:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=be18563c9a1c1fcd80eef702883a8443d8bac42e'/>
<id>be18563c9a1c1fcd80eef702883a8443d8bac42e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: set backspace=indent,eol,start; drop autosave on leaving insert mode</title>
<updated>2026-11-08T11:00:43+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-08T11:00:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=fadb49c6a77b7784f7cbe41a7363d92b1d0023c0'/>
<id>fadb49c6a77b7784f7cbe41a7363d92b1d0023c0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: skip rust-analyzer detachedFiles for buffers whose directory does not exist</title>
<updated>2026-11-08T10:56:39+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-08T10:56:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=bba0fa8537b991d6792bd1a1dce25bcc35d42c70'/>
<id>bba0fa8537b991d6792bd1a1dce25bcc35d42c70</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: standalone .rs files via detachedFiles, added at server start</title>
<updated>2026-11-05T02:45:32+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-05T02:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=71053fa5e61b08381ef940db338ec6dcf7ab2909'/>
<id>71053fa5e61b08381ef940db338ec6dcf7ab2909</id>
<content type='text'>
A .rs file that is a target of its nearest Cargo.toml uses that crate;
any other .rs file is loaded standalone via detachedFiles with
checkOnSave off (cargo check needs a Cargo.toml).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A .rs file that is a target of its nearest Cargo.toml uses that crate;
any other .rs file is loaded standalone via detachedFiles with
checkOnSave off (cargo check needs a Cargo.toml).
</pre>
</div>
</content>
</entry>
<entry>
<title>core: shared clipboard over ssh to root@p.noml.ch</title>
<updated>2026-11-05T02:45:32+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-05T02:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=bbe55a3f647f07a6b7c9852a499c45d03ac068af'/>
<id>bbe55a3f647f07a6b7c9852a499c45d03ac068af</id>
<content type='text'>
tmux.conf and vimrc push yanks to /dev/shm/clip/buf on CLIP_HOST
(root@p.noml.ch) and pull before every paste (tmux prefix+], every vim
p variant, 3 s limit, local paste when no buffer exists yet). One
persistent ssh link per machine (ControlPersist=yes, ControlPath
~/.ssh/cm-%C), host key not checked. Replaces the openssl+netcat sender.
vimrc: set nocompatible so /etc/vimrc parses \ continuations and &lt;leader&gt;.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tmux.conf and vimrc push yanks to /dev/shm/clip/buf on CLIP_HOST
(root@p.noml.ch) and pull before every paste (tmux prefix+], every vim
p variant, 3 s limit, local paste when no buffer exists yet). One
persistent ssh link per machine (ControlPersist=yes, ControlPath
~/.ssh/cm-%C), host key not checked. Replaces the openssl+netcat sender.
vimrc: set nocompatible so /etc/vimrc parses \ continuations and &lt;leader&gt;.
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: no cargo check on standalone .rs files</title>
<updated>2026-11-05T02:45:32+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-03T11:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=dc1ff54f7290a42ae440389141401b78ed76d473'/>
<id>dc1ff54f7290a42ae440389141401b78ed76d473</id>
<content type='text'>
cargo check on a file without Cargo.toml needs nightly -Zscript, so
rust-analyzer's checkOnSave warned on every save. Turn it off when the
server starts on a standalone file.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cargo check on a file without Cargo.toml needs nightly -Zscript, so
rust-analyzer's checkOnSave warned on every save. Turn it off when the
server starts on a standalone file.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vimrc: rust-analyzer gd/completion on standalone .rs files</title>
<updated>2026-11-05T02:45:32+00:00</updated>
<author>
<name>xs</name>
<email>xs@xs.local</email>
</author>
<published>2026-11-03T11:49:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.noml.ch/dev_env/commit/?id=be7440b5c365303865ebf7a3c437039e96c170c1'/>
<id>be7440b5c365303865ebf7a3c437039e96c170c1</id>
<content type='text'>
Root rust-analyzer at the owning crate only if the file is one of its
targets; otherwise list the file in detachedFiles (init options for the
first file, workspace config for later ones) so std resolves.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Root rust-analyzer at the owning crate only if the file is one of its
targets; otherwise list the file in detachedFiles (init options for the
first file, workspace config for later ones) so std resolves.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
