8

私のHaskellプログラムの場合、パス内の実行可能ファイルの名前が現在のディレクトリの名前と同じであることを知っています。次に、次のようなマッピングを作成します。

:map <leader>rr :!curdir()<cr>

ただし、私が知っている唯一のコマンドはgetcwd()、ディレクトリの名前だけでなく、パス全体を表示するコマンドです。

ディレクトリの名前だけを抽出する簡単な方法はありますか?

4

2 に答える 2

14

使用する

fnamemodify(getcwd(), ':t')

また

fnamemodify('.', ':p:h:t')

:h2番目のケースでは、:p末尾のパス区切り文字を出力するために必要です(したがって、によって選択された最後のパスコンポーネント:tは空の文字列になります)。

これをマッピングに移動するには、

:noremap \rr :!<C-r>=shellescape(fnamemodify('.', ':p:h:t'), 1)<CR><CR>

。使用すべきでない理由の説明については、こちら:mapを参照してください。

于 2012-12-18T19:59:55.533 に答える
0

次のようなものを使用できます。

split(getcwd(), "/")[-1]
于 2012-12-18T16:54:42.453 に答える