僕の設定は以下に置いてあります。
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 をインストールする。