目次
僕の設定は以下に置いてあります。
https://github.com/kuritaka/dotfiles/tree/master/.vifm
| .vifm/colors/ | カラースキーム |
| .vifm/scripts/ | |
| .vifm/trush/ | ゴミ箱 |
| .vifm/vifm-help.txt | ヘルプテキスト |
| .vifm/vifminfo | ブックマークおよびゴミ箱の中身。 手動で編集することは推奨されていません。 |
| .vifm/vifmrc | 設定ファイル |
apt install vifm
yumでインストールできない。Sourceからmakeしないとダメ?
# ./configure # make # make install
Binaryをダウンロード(https://vifm.info/downloads.shtml)
| :q :x ZZ | vifmの終了 |
| :h | ヘルプの表示 |
| C-c ESC | 動作キャンセル |
| C-l (エル) | 再描画 |
| :restart | 設定ファイルの再読込 |
| j | 下移動 |
| k | 上移動 |
| h | 親ディレクトリへ |
| l Enter | ディレクトリなら掘る,ファイルなら実行 |
| gg | 一番上へ移動 |
| G :$ | 一番下へ移動 |
| Space Tab | 他方のペインに移動 |
| :number | number行へ移動 |
| C-g | ファイル情報 |
| C-b | 上へ1ページスクロール |
| C-f | 下へ1ページスクロール |
| :cd | ディレクトリ移動(シェルでのcdと同じ) 補完もできます。 :cd /tmp :cd /home |
| :sync | 逆ペインを同じディレクトリにする |
| :pwd | 現在のパスを表示 |
| / | 検索の開始 |
| :his(tory) | 今まで訪れたディレクトリストのポップアップ |
| l Enter | ディレクトリなら掘る,ファイルなら実行(viで編集) |
| :file | filetypeで設定している一覧を表示して、撰択して開く |
| :sh | シェルの起動 |
| dd | ファイルを vifm の trash ディレクトリに入れる ※確認が聞かれます Trashディレクトリのデフォルトは、 ~/.local/share/Trash との記載がありましたが、./.vifm-Trash-0/でした。 |
| DD | ファイルを完全に削除する。(trashディレクトリに入れない) ※確認が聞かれます |
| yy | ファイルのヤンク(コピー) |
| p | ファイルのペースト(ddもしくはyyしたものなど) |
| cw | リネーム |
| cW | リネームする (拡張子を除く) |
| :e | ファイルをviで編集 |
| :touch テキスト | ファイルを作成 |
| :mkdir ディレクトリ名 | ディレクトリ作成 |
| :view | 反対のペインでファイルの内容表示 |
| :! command | シェルでcommandを起動 |
| :!! command | シェルでcommandを実行し、vifmに戻るまえに一度止まる 例 !!df -h 例 !!ls -l |
| :ch | name,owner,group,permissionのどれかをチェンジ(メニューが出る) |
trash ディレクトリは、~/.local/share/Trash です。
| :sort | ソート方法の変更(メニューが出る) |
| :fil hoge | hogeの正規表現の結果をフィルタリング |
| zo | 隠しファイルも表示 ※僕は設定で最初から隠しファイルを表示するようにしています |
| zm | 隠しファイルは非表示 |
| :only | 1ペインにする |
| :vsp(lit) | 左右2ペインにする ※デフォルトの表示方法 |
| :sp(lit) | 上下2ペインにする |
| :tabnew | タブを作成 設定で、「gn」でタブ作成にしている。 nnoremap gn :tabnew<cr> |
| gt | switch to the next tab (wrapping around). |
| {n}gt | switch to the tab number {n} (wrapping around). |
| gT | switch to the previous tab (wrapping around). |
| {n}gT | switch to {n}-th previous tab. |
| :marks | ブックマークの表示 |
| m[a-z][A-Z][0-9] | 場所をブックマーク |
| '[a-z][A-Z][0-9] | ブックマークへアクセス |
ブックマークの情報はvifminfoに保存されます。
僕は、この設定ファイルを、viで編集できないので、この方法を使っていないです。
| v | ビジュアル選択(j,kで移動しながらまとめて選択できる) |
| :locate filename | filenameでlocateした結果表示 |
| :empty | ゴミ箱を空に |
| :trashes | ゴミ箱を確認 |
| :lstrash | ゴミ箱を確認 |
| :restore | |
| :jobs | バックグラウンドジョブの表示 |
| :sh | カレントディレクトリで、シェルスクリプト実行 |
~/.vifm/vifmrc
Windowsの場合は、C:\Users/XXXXX/.vifm/vifmrc
僕の設定は以下に置いてあります。
https://github.com/kuritaka/dotfiles/tree/master/.vifm
サイズの前に常に変更時刻
" show hiddden files in both panes "
windo normal zo
" set confirm -=delete,permdelete "
set viewcolumns=-45%{name}..,5{ext},10{size},12{perms},21{mtime}
set timefmt=" %Y/%m/%d %H:%M:%S "
set statusline=" %t [%T]%= %A %10u:%-7g %15s %20d [%a free]"
set sizefmt=units:iec,precision:3
" Ignore case in search patterns unless it contains at least one uppercase "
" letter "
set ignorecase
set smartcase
" Don't highlight search results automatically "
set nohlsearch
" Use increment searching (search while typing) "
set incsearch
" set line number "
set number
" show list of matches on tab complition in command-line mode "
set wildmenu
" use popup window instead of a single line for completion "
set wildstyle=popup
" show suggestions "
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
set history=100
" What should be saved automatically between vifm runs
" Like in previous versions of vifm
" set vifminfo=options,filetypes,commands,bookmarks,dhistory,state,cs
" Like in vi
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
" Synchronize the opposite pane with the current pane " nnoremap , :sync!<cr> nnoremap o :sync!<cr> " Display sorting dialog nnoremap s :sort<cr> " スペースキーを「カレントファイルを選択して、カーソルを1つ下に移動」にする " nnoremap <space> t<down> " 選択ファイルを他方のディレクトリに移動 " :com mv mv %f %D :com cp cp %f %D " ブックマーク " :com cdtmp :cd /tmp :com cdhome :cd /home/user01 :com cheat vi ~/.vifm/cheart.txt " Faster renaming nnoremap I cw<c-a> nnoremap C cw<c-u> nnoremap A cw
多く利用するので、「b」で利用できるようにしています。
"fzf の場合"
command bookmark :execute 'cd "'.term('cat ~/.vifm/bookmark.txt | fzf 2>/dev/tty | sed "s/:.*//" ').'"'
"peco の場合"
command bookmark :execute 'cd "'.term('cat ~/.vifm/bookmark.txt | peco 2>/dev/tty | sed "s/:.*//" ').'"'
nnoremap b :bookmark<cr>
/home/xxxxxxx /Volume/GoogleDrive/xxxxxxx/
Using fzf with vifm · Issue #279 · vifm/vifm · GitHub
" Write the current bookmarks to a file (same as EvilDroidMax)
command! fzfreadbmarks :exe "normal! :bmarks\r:write ~/.config/vifm/fzf-read/bookmarks\rq"
" Fzf through bookmarks
if $TMUX
" Use popup window. Requires tmux 3.2 and up
command! fzfbmarks :execute 'cd "'.system('cat ~/.config/vifm/fzf-read/bookmarks | fzf-tmux -p 90,30 | sed "s/:.*//" ').'"'
command! fdcddir :execute 'cd "'.system('fd -HE ''.git'' -t d . | fzf-tmux -p 90,30').'"'
command! fdeditfiles :execute 'edit "'.system('fd -HE ''.git'' -t f . | fzf-tmux -p 90,30').'"'
else
" Use full-screen. Works even without tmux
command! fzfbmarks :execute 'cd "'.term('cat ~/.config/vifm/fzf-read/bookmarks | fzf 2>/dev/tty | sed "s/:.*//" ').'"'
command! fdcddir :execute 'cd "'.term('fd -HE ''.git'' -t d . | fzf 2>/dev/tty').'"'
command! fdeditfiles :execute 'edit "'.term('fd -HE ''.git'' -t f . | fzf 2>/dev/tty').'"'
endif
" Read in latests bookmarks before fzfinding through them
command! fzfmarks :fzfreadbmarks | fzfbmarks
" fzfind bookmarks
nnoremap <space>r :fzfmarks<cr>
" cd to child directory
nnoremap <space>e :fdcddir<cr>
" edit file from child directory in vim
nnoremap <space>f :fdeditfiles<cr>
nnoremap F :file<cr> " -N は --LINE-NUMBERS で行表示 " set vicmd="less -N" command! vim vim %f nnoremap E :vim<cr> " %f 今のペインの選択ファイルと、反対ペインの選択ファイルをDiff " command diff vim -d %f %F
Ctrl-W Ctrl-W と入力(Ctrl-Wを2回)Ctrl-W Ctrl-lで右へ。Ctrl-W Ctrl-hで左へ。dp(diff putの略)で、自分の内容をもう一方のファイルに反映do(diff obtainの略)で、もう一方のファイルに内容を自分に反映 (僕はこっちは利用しない)"カレントファイルを関連付けられたデフォルトのアプリケーションで開く。" nnoremap X :!open %f<cr>
" Pdf "
filetype {*.pdf},<application/pdf>
\ {Open in Preview}
\ open -a Preview.app,
\ {Open in Skim}
\ open -a Skim.app,
fileviewer {*.pdf},<application/pdf> pdftotext -nopgbrk %c -
" Office files "
filetype *.doc,*.docx open -a 'Microsoft Word.app'
filetype *.xls,*.xlsx open -a 'Microsoft Excel.app'
filetype *.ppt,*.pptx open -a 'Microsoft PowerPoint.app'
" Open .pkg binaries "
filetype *.pkg open
filetype *.gsheet open
filetype *.gslides open
filetype *.drawio open
" Open Default Application nnoremap X :!explorer.exe %f&<cr> nnoremap F :file<cr> filetype *.pdf wslview %c filetype *.mp4 explorer.exe %c & filetype *.mp3 explorer.exe %c & filetype *.drowio explorer.exe %c & filetype *.doc,*.docx explorer.exe %c & filetype *.xls,*.xlsx explorer.exe %c & filetype *.ppt,*.pptx explorer.exe %c &
" カレントファイルを関連付けられたデフォルトのアプリケーションで開く。 "
" Windows "
" Trying to open files with spaces opens Explorer - Windows OS #41
" https://github.com/vifm/vifm/issues/41
filetype * start %"c, explorer %"c
"set vicmd="C:/msys64/usr/bin/less.exe -N" "
set vicmd="C:/HashiCorp/Vagrant/embedded/usr/bin/less.exe -N"
command! vim "C:/Program Files/Git/usr/bin/vim.exe" %f
nnoremap E :vim<cr>
filextype *.pdf
\ {View in AR}
\ "C:/Program Files/SumatraPDF/SumatraPDF.exe" %"f &,
"yank current directory path into the clipboard"
nnoremap yd :!echo -n %d | pbcopy %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
"yank current file path into the clipboard"
nnoremap yf :!echo -n %c:p | pbcopy %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
"yank current filename without path into the clipboard"
nnoremap yn :!echo -n %c | pbcopy %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
"yank root of current file's name into the clipboard"
nnoremap yr :!echo -n %c:r | pbcopy %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
" Yank current directory path into the clipboard nmap yd :!echo %d | clip.exe %i<cr> " Yank current file path into the clipboard nmap yf :!echo %c:p | clip.exe %i<cr>
" yank current directory path to Windows clipboard with forward slashes " nnoremap yp :!echo %"d:gs!\!/!%i| clip<cr> " yank current directory path to Windows clipboard with backward slashes " nnoremap yP :!echo %"d%i| clip<cr> " yank path to current file to Windows clipboard with forward slashes " nnoremap yf :!echo %"c:gs!\!/!%i| clip<cr> " yank path to current directory to Windows clipboard with backward slashes nnoremap yF :!echo %"c%i| clip<cr> " yank current filename without path to Windows clipboard " nnoremap yn :!echo %"c%i| clip<cr> " yank root of current file's name to Windows clipboard " nnoremap yr :!echo %"c:r%i| clip<cr>
" yank current directory path into the clipboard "
nnoremap yd :!echo -n %d | xclip -selection clipboard %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
" yank current file path into the clipboard "
nnoremap yf :!echo -n %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into the clipboard "
nnoremap yn :!echo -n %c | xclip -selection clipboard %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
" yank root of current file's name into the clipboard "
nnoremap yr :!echo -n %c:r | xclip -selection clipboard %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
" yank current directory path into primary and selection clipboards "
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
\ echo -n %d | xsel --clipboard --input %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
" yank current file path into primary and selection clipboards "
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
\ echo -n %c:p | xsel --clipboard --input %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
" yank current filename without path into primary and selection clipboards "
nnoremap yn :!echo -n %c | xsel --input --primary %i &&
\ echo -n %c | xsel --clipboard --input %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
" yank root of current file's name into primary and selection clipboards "
nnoremap yr :!echo -n %c:r | xsel --input --primary %i &&
\ echo -n %c:r | xsel --clipboard --input %i<cr>:echo expand('%"c:r') "is yanked to clipboard"<cr>
brew install macfuse brew install gromgit/fuse/sshfs-mac
sudo apt install sshfs
:filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
username@server1:/home/username
あとは、vifmで、.sshファイルを開くだけ。
$ sudo apt install curlftpfs
#### 固まる ######
" FtpMount
filetype *.ftp
\ {Mount with CurlFtpFS}
\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %CLEAR,
#### これで動いた ######
" FtpMount
filetype *.ftp
\ {Mount with CurlFtpFS}
\ FUSE_MOUNT2|curlftpfs %PARAM %DESTINATION_DIR %CLEAR,
-o user=<user-name> <server-address>:
-o user=username:password 192.168.100.10:7777
ftp.gnu.org
zip などのアーカイブも展開せずに中を開くために、 FUSE を利用します。
$ brew cask install osxfuse $ brew install fuse-zip
https://github.com/thimc/vifm_devicons
~/.config/vifm/vifmrc
NERDfont
https://www.nerdfonts.com/font-downloads
例えば、「Caskaydia Cove Nerd Font」をダウンロードし、
Caskaydia Cove Nerd Font Complete Mono Windows Compatible Regular.otf をインストールする。
一般向けサイト
ITエンジニア向けサイト
英語サイト
Portfolio
Copyright (c) 2025 インフラエンジニアのPC環境 All Rights Reserved.