LinuxのVIMステータス行にホスト名の表示を追加するには?

LinuxのVIMステータス行にホスト名の表示を追加するには?

vimのステータスバーに短いホスト名を追加したいと思います。見回したがPowerlineプラグインがインストールされていないと不可能に見えます。以下は私のものです.vimrc。どのようにhostname変数を追加できますか?

let hostname=system('hostname -s')
set laststatus=2
set statusline+=%F\ %P\ %c:%l

更新:vimステータス行でホスト名の後に表示される「^ @」を削除するには(ホスト名呼び出しで改行文字であると思われる)、次のコマンドを使用します。

let hostname=system('echo -n $LOGNAME@$(/bin/hostname -s)')

答え1

vim次のことができるhostname()機能(参照)があります。:h hostname()

:set statusline=%{hostname()}

答え2

statusline変数名を含めるように変更できます。

たとえば、私はstatlineプラグインを使用しているので、私はstatusline次のようになります。

statusline=[%{StatlineBufCount()}:%n] %<%1*[%f]%*%2*%h%w%m%r%* %y[%{&ff}%{g:statline_encoding_separator}%{strlen(&fenc)?&fenc:g:statline_no_encoding_string}] %5*%{&paste?(g:statline_show_paste_string):''}%*%5*%{&list?(g:statline_show_list_string):''}%*%=%-14( L%l/%L:C%c%V %)%P %4*%{exists('g:sfe_availableScms')?SfeStatus():''}%* %3*%{exists('g:loaded_syntastic_plugin')?SyntasticStatuslineFlag():''}%*%3*%{StatlineTabWarning()}%*%3*%{StatlineTrailingSpaceWarning()}%*

これらはすべてプラグイン自体によって接続されています。

あなたの場合は、次のものを使用できます。

let hostname=system('hostname -s')
set statusline+=%F\ %P\ %c:%l\ %{hostname}

答え3

基本ステータスバーおおよそ次のようにシミュレートできます。

:set statusline=%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P

どこ

%f - buffer name (path to a file, or something)
%h - help flag
%w - preview flag
%m - modified flag
%r - readonly flag
%= - separater between the left (buffer name) and the right (ruler) parts
%-14.(...%) - minimum field width == 14
%l - line
%c - column
%V - virtual column
%P - percentage

ホスト名を追加する1つの方法は、次を使用することです。hostname()機能:

:set statusline=%#CursorColumn#\ %{hostname()}\ %*\ %f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P

どこ

%#CursorColumn# - sets highlight group
%{...} - embeds arbitrary expression
%* - resets highlight group

利用可能なグループのリストとその内容を表示するには、次のスクリプトを実行できます。のように見える:

:so $VIMRUNTIME/syntax/hitest.vim

あるいは、単にホスト名を括弧で囲むこともできます。

:set statusline=[%{hostname()}]\ %f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P

私を見てその他の回答状態線を描く基本的な方法に近づきたい場合。

関連情報