• Online Tools
  • - Calculators
    • Character Count
  • - Download
    • TikTok Download
    • DouYin Download
  • - Web Tools
    • BASE64
    • Base64 to Image
    • Image to Base64
    • URL Encoding
    • JavaScript
    • Timestamp
    • Unicode Converter
    • JSON Format
    • Modify Extension
    • Make List
    • CSS Optimizer
  • - Encryption Tools
    • MD5 Encryption
    • Random Generator
  • - Image Tools
    • Image Compression
    • QR Code Generator
    • QR Code Reader
    • Wallpaper Preview
  • - Info Sheets
    • Blood Type Heredity
    • Clothing Sizes
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
Vimからshellにアクセスしたり、外部コマンドを実行したりする方法
2022-02-11

Vimは、すでに知っているように、多くの特性を含む強力なエディタです。Vimに関するチュートリアルをたくさん書きました。基本的な使い方、プラグイン、その他の有用な特性をカバーしています。Vimが海洋のような特性を提供していることを考えると、私たちはいつも読者と共有するために役立つものを見つけることができます。

このチュートリアルでは、編集ウィンドウで外部のコマンドを実行し、コマンドラインshellにアクセスする方法に重点を置きます。

しかし、私たちが始める前に、このチュートリアルで言及したすべての例、コマンドライン、説明をUbuntu 14.04でテストしました。私たちが使用しているVimバージョンは7.4です。

Vimで外部コマンドを実行する

Vim編集ウィンドウで外部コマンドを実行する必要がある場合があります。たとえば、Vimでファイルを開き、いくつかの変更を行い、これらの変更を保存しようとすると、Vimは十分な権限がないというエラーを投げ出します。

現在のvimセッションを終了し、ファイルを開くのに十分な権限を再使用すると、すべての変更が失われることを意味します。そのため、ほとんどの場合、選択肢は1つだけではありません。このような場合、エディタ内で外部コマンドを実行する能力が役立ちます。

後で上記の例に戻りますが、vimで基本的なコマンドを実行する方法について説明します。

ファイルを編集しているとします。このファイルに含まれる行数、単語数、文字数を知りたいとします。この目的を達成するためにvimのコマンドラインモードでは、コロンを入力するだけです:、次の感嘆符!、最後に、実行するコマンド(この例ではwcが使用されています)と直後のファイル名(%を使用して現在のファイルを表します)。

:! wc %

これは例です。

入力された上で説明したコマンドラインは、実行の準備をします。

次に、端末の出力を示します。

出力が表示されたら、リターンキーを入力するとvimセッションに戻ります。

コードやスクリプトを作成しており、このコードやスクリプトにコンパイル時のエラーや構文エラーが含まれているかどうかをできるだけ早く知りたいと思っています。このとき、この特性は本当に便利です。

続けて、ファイルに出力を追加する必要がある場合は、readを使用します。で行ないます。次に例を示します。

:read ! wc %

readコマンドは、外部コマンドの出力を編集したファイルの現在の行の次の行に新しい行として挿入します。必要に応じて、特定の行番号を指定することもできます。出力は特定の行の後に追加されます。

たとえば、次のコマンドは、ファイルの2行目の後にwcの出力を追加します。

:2read ! wc %

注意:$を使用して最後の行に挿入し、0を最初の行の前に挿入します。

次に、最初に説明した例に戻ります。次のコマンドは、ファイルを閉じる必要がなく、ファイルを保存し(保存されていないコンテンツが失われないことを意味します)、sudoコマンドを使用して再開するのに役立ちます。

:w ! sudo tee %

Vimでshellにアクセス

個別のコマンドを実行するだけでなく、vimに自分が新しく作成したshellを入れることもできます。この目的を達成するには、エディタで次のコマンドを実行する必要があります。

:shell

または、

:sh

shellタスクを完了したらexitを入力します。これにより、元のVimセッションに戻ります。

注意すべき抜け穴

実際の世界では、アクセス可能なshellは絶対にユーザー権限に合致しますが、権限付与技術にも使用できます。以前の記事(sudoeditで)で説明したように、ユーザーsudoに提供された権限がVimでファイルを編集するだけであっても、この技術を使用してエディタから新しいshellを実行することができ、rootユーザーまたは管理者ユーザーができるすべてのコンテンツを作成することができます。

まとめ

Vimで外部コマンドを実行できるのは、多くのシーン(この記事で説明したシーンもあります)で役立ちます。この機能の学習曲線は面倒ではないので、初心者でも経験のあるユーザーでもよく使えます。


ソース元URL:https://dopubox.com/article/p/044150c91aa2d7df

Other Tools
  • Character Count TikTok Download DouYin Download BASE64 Base64 to Image Image to Base64 URL Encoding JavaScript Timestamp Unicode Converter JSON Format Modify Extension Make List CSS Optimizer MD5 Encryption Random Generator Image Compression QR Code Generator QR Code Reader Wallpaper Preview Blood Type Heredity Clothing Sizes
  • 原作者の意向は取り入れられたと日テレ
    2024-05-30

    意思疎通うまくいかず信頼関係失われた
    2024-05-31

    黒柳徹子さん、北京で特別授業 「日本語勉強続けて」
    2024-05-31

    『マッドマックス:フュリオサ』に登場する「ある絵画」は何を意味しているのか? ギリシア神話と「ファム・ファタル」から考察する
    2024-06-01

    まだ無名だった作曲家エルガーが、婚約の贈り物として捧げた名曲【クラシック今日は何の日?】
    2024-06-01

    エリザベートコンクールで吉田さん6位入賞
    2024-06-01

    三姉妹が温泉旅行で取っ組み合いの大げんか うっとうしくてめんどうくさい家族愛描く「お母さんが一緒」
    2024-06-02

    応挙手本?に描いたトラ甦れ…徳島の寺のふすま絵修復へ
    2024-06-04

    映画「ゴジラ‐1.0」の震電は「コックピットだけ復元」のはずだった…山崎貴監督がエピソード披露
    2024-06-04

    美術評論家連盟が「ガザ戦争に対する意⾒表明」を公開
    2024-06-04

    建築家・白井晟一設計の個人住宅「桂花の舎」が江之浦測候所に移築へ
    2024-06-04

    ペース・ギャラリーが9月にグランドオープン。7月には特別内覧会を開催へ
    2024-06-04

    アートフェア東京、次回は2025年3月に開催決定
    2024-06-04

    「ゲバルト」展が東京日仏学院などで開催。反暴力的反応とその美的様式を探る
    2024-06-05

    開館10周年を記念。「広重 ─摺の極─」があべのハルカス美術館で開催へ
    2024-06-05

    五木ひろし歌手生活60年…ふるさと福井へ恩返しの新曲
    2024-06-04

    謎多き家形埴輪 「考古学の空白」に挑む橿考研ベテラン研究員、念願の特別展開催中
    2024-06-04

    【1971年の今日 : 6月5日】京王プラザホテル全面開業―今からは想像もできない着工前の巨大な貯水池だった頃の写真も
    2024-06-05

    フィギュアスケートにもぴったり! ハチャトゥリアン作曲の『仮面舞踏会』【クラシック今日は何の日?】
    2024-06-06

    ご当地体操「いちょう体操」に小学生の指導委員が誕生 「体がのびやかに動く」
    2024-06-06

    ©  Dopu Box
    💛