めまいプログラマーの徒然

小脳出血でめまいをおこしている プログラマの忘備録

Visual Studio Code ショートカットキー(Basic)

Go 言語の作成に Visual Studio Code を使用予定です。

理由は

  1. 無料である。
  2. 色々なOSで動作が可能 (Windows, Linux, Mac)
  3. キーによる操作が充実している。(昔の Vz みたいに)
  4. 軽い!!
 標準のショートカットをしらべたら結構な操作が可能である。すぐに全てを覚えるのは無理だけどオイオイ覚えていけばよい!
 
標準 (US キーボード) の場合
[C] : Ctrl  キー
[A] : Alt   キー(左)
[S] : Shift キー
 
No. キー 機能
1 [C]+X Cut(行削除)
2 [C]+C Copy(選択範囲をコピー)
3 [C]+[S]+K カーソル行を削除
4 [C]+[Enter] カーソルのある行の下に行を挿入
5 [C]+[S]+Enter カーソルのある行の上に行を挿入
6 [A]+[↓] カーソルのある行を下に移動
7 [A]+[↑] カーソルのある行を上に移動
8 [S]+[A]+[↓] カーソルのある行を下にコピー
9 [S]+[A]+[↑] カーソルのある行を上にコピー
10 [C]+D カーソル上の単語を選択 (2回目、次も選択)
11 [C]+K [C]+D カーソル上の単語を選択 (2回目、次に移動)
12 [C]+U カーソル のUndo (変更を元に戻す場合は[C]+Z)
13 [S]+[A]+I カーソルを行末に挿入
14 [C]+[S]+L カーソルのある単語をすべて選択する。(すべてを同時に変更可能)
15 [C]+F2 カーソルのある単語をすべて選択する。(すべてを同時に変更可能)
16 [C]+I カーソルのある行を選択する。
17 [C]+[A]+[↓] カーソルを下の行に追加。(続いて入力すると2行同時に追加)
18 [C]+[A]+[↑] カーソルを上の行に追加。(続いて入力すると2行同時に追加)
19 [C]+[S]+] 対応するカッコまでを展開する。
20 [C]+[S]+[ 対応するカッコまでを隠す。
21 [C]+[S]+\ 対応するカッコに移動
22 [C]+] カーソル行にインデントを追加 (自動保存では最適化される。)
23 [C]+[ カーソル行のインデントを削除 (自動保存では最適化される。)
24 Home カーソル行の先頭に移動
25 End カーソル行の末尾に移動
26 [C]+Home ファイルの先頭に移動
27 [C]+End ファイルの末尾に移動
28 [C]+K [C]+C カーソル行をコメント行にする。    (行頭に // を追加)
29 [C]+K [C]+U カーソル行のコメントマークを削除する。(行頭の // を削除)
30 [C]+/ カーソル行のコメントマークを反転する。(なければ追加、あれば削除する。)
31 [C]+[A]+A 選択範囲をコメントにする。(/* ... */ で囲む。)
32 [C]+F 検索開始
33 [C]+H 置換開始
34 F3 次検索
35 [S]+F3 逆順検索
36 [A]+Enter 選択した全てに対応する。
37 [A]+C 大文字/小文字を区別する。
38 [A]+R 正規表現を使用する。
39 [A]+W 単語の検索は全単語/あるいは一部
40 [C]+M TAB キーによるフォーカス移動の開始/停止
41 [A]+Z 行末の折り返し方法の変更
 
 Visual Studio Code のバージョンは 1.13.0 で調べて見たがバージョンのよりショートカットが増えているみたい?また、このショートカットは使うことがあるのだろうかと思うようなものもあって、少しオロオロしている。
 

Go 言語 配列-1

 

Go 言語での配列の定義を見てみます。

単純な配列をはじめ、Slice, map, chanel  などがあります。

最初に単純な配列から調べてみました。

01: package main
02: 
03: import (
04: 	"fmt"
05: )
06: 
07: /******************************
08: **	定数定義
09: *******************************/
10: const (
11: 	Arry_Max = 10
12: )
13: 
14: /******************************
15: **	変数定義( & 配列定義 )
16: *******************************/
17: var (
18: 	i int
19: 	a [Arry_Max]int
20: )
21: 
22: /******************************
23: **	処理 ( Program )
24: *******************************/
25: func main() {
26: 	for i = Arry_Max - 1; i >= 0; i-- {
27: 		a[i] = i
28: 	}
29: 	for i = 0; i < Arry_Max; i++ {
30: 		fmt.Println("Hello, xs 2 -", a[i])
31: 	}
32: }

 

配列へのデータ設定、配列からのデータ表示などが出来ました。こんな単純なプログラムなら簡単ですが、大きなプログラムだと分割コンパイルが必要になりますがどうすれがいいのかな!? (おいおい調べてゆきます。)

Go 言語、開発環境のインストール

順番は逆になりましたが、Go 言語の開発環境をインストールします。

 

 Go言語コンパイラとエディターで開発は可能ですが、チョット楽をしたいので色々とインストールします。
 しかし、重たくなるのを避けるため、エディターには Visual Studio Code (マイクロソフト製)を使用し、そのほかに便利なツールを Git より取得してインストールします。すべて無料なのでダウンロードできます。

1.Visual Studio Code

 ここからより自分のマシーンに対応したソフトをダウンロードします。
今回は Windows 版をインストールしましたが、macLinux 用がそろぞれ用意されています。私は VSCodeSetup-1.12.2.exe をダウンロードしました。

2.Git
Git にある Go 用のツールを使用しますのでダウンロードするため、Git を準備します。Windows 用の Git-2.13.0-64-bit.exe をダウンロードしました。


3.Go 言語
Go 言語のコンパイラー(これが無くては始まりません。)ここから
Windows 用の go1.8.3.windows-amd64.msi をダウンロードしました。これだと後はクリックするだけでインストール可能です。

環境変数
Windows 用の環境変数は自動で設定されます。
 GOROOT C:\Go\
PATH にも以下が追加されています。
 C:\Go\bin


また、コマンドプロンプトで go env を打ち込むと現在設定されてる。環境変数が表示されます。
GOPATH も設定されています。

set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\(*****)\go (ユーザー名)
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2

参考 URL
Visual Studio Code][Golang][Windows] VSCodeでGoの開発環境を作成する方法まとめ

Go 言語 忘れずに 変数-1

package main

import "fmt"

var (
	j   int8
	str string
)

func main() {
	str = "初めての Go 言語 2 !!"
	for j = 1; j < 10; j++ {
		fmt.Println(j, str)
	}
}

Go 言語を始めたので忘れないうちに!!

ここで変数は j  と str の2つのみである。

注意:j は半角の小文字である。(全角だと目立たずエラーとなる。)

変数の型は

int8, int16, int32, int64, uint8, uint16, uint32, uint64 や

float64, float32, string 等がある。データの大きさ(範囲)は事前に分かっている場合がほとんどなので出来るだけその範囲内に収まる変数型を使用してみる。

パソコン キーボード (Ctrl)

 Windows 10 をクリーンインストールして動いたので設定を行うが、まず最初に行ったのはキーボードの設定。エディター で Control キーをよく使うので(昔は [A] の左隣に [Ctrl] キーがあった様に記憶している。)
 そのためOS(Winodws)入れ替え事に Remapkey.exe のお世話になっている。
レジストリにアクセスするため右クリックして『管理者として実行(A)』で行う必要がある。

 Linux では設定を探し回ることになる。(Ubuntu では諦めた! CentOS 7 ではアプリケーション ⇒ ユーティリティ ⇒ Tweak Tool  ⇒ タイピング ⇒ Ctrl キーの位置 で Ctrl とCaps Lock を入れ替える にチェックを入れれば変更可能)

f:id:xskawabe:20170416112652p:plain

上図のように変更してリブートすれば変わっている。

 このソフトは10年以上使ているが、自分で作成したソフトも10年以上、使ってもらえているだろうか?

Windows 10 クリーンインストール

 Windows 10 は Windows 7 よりアップデートして使用していたが、起動後 10分程度ディスクアクセスが100% となり重たくなっていた。また、ディスク内に古いソフトが残り。削除しても完全にアンインストールは難しい状況だった
 思い立ったが吉日とクリーンインストールしてみた。

 Windows 10 は再インストール時にプロダクトキーは不要らしい。(実際にやってみるまで分からなかった!)

 Windows 10 用の DVD を作成します。以下からMediaCreationTool.exe (17.5MB) をダウンロードして実行します。
https://www.microsoft.com/ja-jp/software-download/windows10

 

 今回は DVD 用をダウンロードして、DVDに書き込むことにした。Window 10 では DVD への書き込みがサポートされているのでダウンロード後、自動でDVD への書き込みプログラムが動作します。このDVDをセットしたままPC を再起動するとWindows 10 のインストールが始まります。
BIOSで起動ドライブを DVD に設定してある)

 Windows は ローカルディスクの C ドライブが起動ドライブなので現状のローカルディスクの中身(パーティション)をすべて削除してインストールするとローカルディスクの先頭に『システムで予約済み』のパーティションが作成され続いて、Cドライブ・パーティションが作成され Windows システムが書き込まれる。

 先頭の『システムで予約済み』は Boot 用なのか、以前(Windows 7)では100MBだったんだけど今回は500MBに増えている。その次のCドライブはデフォルトで500GB確保される。

 Windows 10 はスムーズにインストールできたが、この後が問題だった。ドライバーをインストールしようとしてマザーボードに添付されていたDVDをセットするが、Windows 10 に対応していないため読み込めない...参ったナ~

 とりあえずマザーボード上の RJ45 にネットワークケーブルを接続すると、ネットワークには接続可能だった。ルータに DHCP サーバーの設定をしてあったので IP アドレスが割り当てられた。さらにインターネットにも接続できた。
 Windows のアップデートが始まり、グラフィックカードのドライバーがインストールされ、オーディオのドライバーもインストールされた。実績のあるグラフィックカードマザーボードだったのでドライバーが Microsoft に登録されていたようだ。
 ドライバーがインストールできたのでWindows 10 は以前のように動き始めた。(一安心)
 その後、Windowsは無事 Version 1703 に上げることができた。

 

引っ越しました。

 2月末に引っ越しました(東京小平市内での引っ越しです。)引っ越しは頭に負担が
かなりかかる(物理的に)。引っ越しの前からいろいろ準備に取り掛かる(身の回りの整理、PCの整理など)これが結構な負担になる。自分では頭は動かさいないつもりでいるが動いている。脳出血(小脳)で倒れた当初(入院初期:1年半前)は出会う人に会釈するだけでクラクラしていた、最近は少しましだが(慣れたのかな!?)

 近くのスーパーに買い物に行くがこれが結構つらい。以前住んでいた近くのスーパーは新しく、商品棚は低めで天井は高く、通路も広くて気持ちよかった。引っ越した先にも同じ系列のスーパーがあるのだが通路が狭く、商品棚もやや高め。カートを押して歩くがつまずかないように気を使って歩くのでつらい。また、商品がどこにあるか把握していないのでついつい頭を動かして探しているので余分な動作が加わりクラクラする。
(あれ、さっきの棚だったっけと振り向くと一瞬、倒れそうになる。)