Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Linux

Linuxのviで貼り付け時にコメントがある場合の注意点(コメントアウトされてしまう)

投稿日:2021年11月10日 更新日:

 

<目次>

(1) Linuxのviで貼り付け時にコメントがある場合の注意点(コメントアウトされてしまう)
 (1-1) 発生事象
 (1-2) 原因
 (1-3) 対処
 (1-4) 切替えを簡易化するためのテクニック

(1) Linuxのviで貼り付け時にコメントがある場合の注意点(コメントアウトされてしまう)

(1-1) 発生事象

Linuxのviエディタでプログラムをペーストする際に、「//」(ダブルスラッシュ)や「#」(シャープ)等のコメントを意味する記号があった場合、以降の行も全てコメントとして見做されてしまい、自動で各行の先頭にダブルスラッシュやシャープが付与されてしまう事象が発生しました。

(図111)ペースト前は正常に認識されていた

(図112)ペーストすると、各行の前にダブルスラッシュが付与されてしまう

(1-2) 原因

viエディタには通常の「挿入」モードとは異なる、貼り付けに適した「挿入 (貼り付け)」モードがありますが、デフォルトではそのモードになっていないため、コメントがあると以降の行もコメントアウトされる等(※注1)の意図しない編集が発生していました。

(※注1)

「挿入 (貼り付け)」モードは、通常のモードにある多くの校正機能(自動整形、インデント)を無効化するため、大規模なテキストも、安全に貼り付ける事ができます。

(1-3) 対処

以下の手順で「挿入 (貼り付け)」モードに切替える事により、ソースコード等も正しく貼り付ける事ができます。

・①ペーストする前(通常モード)の状態で、下記コマンドを入力して「Enterを押下」します。

:set paste
(図131)
 
・②「i」で「挿入 (貼り付け)」モードに切替えます
(図132)
 
・③目的のテキストをコピーした状態で「右クリック」等で貼り付けます。
(図133)ダイアログが出るのでOKを押下
正常に貼り付けができました。
(図134)
 
・④貼り付けが完了したら、「Esc」押下後に「:set nopaste」を入力して「Enter」キー押下で貼り付けモードを解除します。

:set nopaste
(図135)①
(図135)②


この状態で「i」を押下すると、通常の「挿入」モードになります。
(図135)③

(1-4) 切替えを簡易化するためのテクニック

上記の切替えは非常に頻繁に実施するため、毎回「:set paste」や「:set nopaste」を入力するのが面倒になってくると思います。そうした方のために、ショートカットキーで簡単に切替える手順をご紹介します。
 
・①viエディタのコマンドモードで以下のコマンドを入力して「Enter」を押下
:set pastetoggle=<F2>
※F2の部分はご自身の好きなキーに変更してご使用いただけます。
(図141)
 
・②「i」押下して「挿入」モードに変わると、以降は「F2」を押すと「挿入」←→「挿入(貼り付け)」と切り替わります。
 

Adsense審査用広告コード


Adsense審査用広告コード


-Linux

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

さくらVPS(CentOS6)にリモートデスクトップ環境を構築する方法

Linuxのサーバーにリモートデスクトップ環境を構築する手順について解説します。 <目次> >0.背景・目的・前提条件 >1.VNCサーバのインストール >2.VNCサーバの設定ファイル編集 >3.V …

CloudLinuxとは?CentOSとの違いも交えてご紹介

<目次> (1) CloudLinuxとは?CentOSとの違いも交えてご紹介  (1-1) CloudLinuxとは?  (1-2) CloudLinuxのメリット・デメリット  (1-3) Clo …

CATALINA_HOMEが設定されない時の想定原因と対処法

<目次> (1) CATALINA_HOMEが設定されない時の想定原因と対処法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 (1) CATALINA_HOMEが …

GitHubのアカウント作成の手順と初期設定をご紹介

  <目次> (1) GitHubのアカウント作成の手順と初期設定をご紹介  (1-1) STEP1:GitHubアカウント作成  (1-2) STEP2:SSH Keyの設定 (1) Gi …

Linux系OSのパッケージ管理システム(rpmやyum)及びリポジトリ(epel)について

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) rpm(パッケージ管理システム)  (2-1) rpmとは?  (2-2) rpmコマンド(追加・更新・削除) …

  • English (United States)
  • 日本語
Top