Vim コマンド

操作基本

u, Ctrl+R
アンドゥ、リドゥ

gg
画面トップ

G
画面末尾

w, e, b
単語単位での移動

Ctrl+V
矩形選択

Shift+j
行結合

>>,  <<
インデント

Ctrl+u, Ctrl+d, Ctrl+f, Ctrl+B
スクロール

*
カーソル下の文字を検索

: を入力後、Ctrl+R, Ctrl+W
コマンド下の文字をvimgrep

split, vsplit
:sp xxx名, :vsp xxx名
画面の分割

:e.
ファイラで開く

Ctrl-W, W
分割画面の移動

Ctrl+U, Ctrl+D
スクロール

Ctrl+i
進む

Ctrl+o
戻る

言語設定

e ++enc=utf-8
指定文字コードで開きなおす

set fenc=shift_jis
指定文字コードに変更

set encoding=utf-8
Vim自体の言語設定

:verbose highlight cursorline
設定を見れる

置き換え

:%s/old/new/gc

‘g’ を加えると行の先頭だけではなく行の中全て
‘c’ を加えると置換の度に確認を求める

sが置き換えの意味、%が現在開いているファイルの意味。

ただし、通常の正規表現とは違うエスケープが必要らしい。
以下は、#から始まる行と、改行だけの行を削除。
:%s/^#.*\n\|^\n//g

Vimgrep

正規表現のパターン

:vim {pattern} app/**
:vim {pattern} **/*
が基本の書き方。

パスの指定は、先ず検索したいパスを指定して、それに、
*
**
*.txt
**/*.txt
の組み合わせの何れかがくっつくイメージ。

| cw で渡して、 :copen で開く。

Ctrl-w, w
移動

:q
閉じる。

ちなみに通常のgrep基本

grep -rn xxx *
等記述する

G
通常正規表現

E
拡張正規表現

P
Perl互換正規表現

r
階層下のファイル内を対象

n
行番号

VBA SQL実験用①(Access(mdb))

SQLの挙動を調べるのにエクセルから手軽にSQLを発行

C# DirectShow

DirectShow導入

以下のコマンドを走らせると、QuartzTypeLib.dllができる。
“C:\Program Files\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\TlbImp.exe” “C:\windows\System32\quartz.dll”
できたら、参照設定に直接追加する。

ちなみに、DirectShowでmp4を再生する場合、
ffdshow
をインストールする。
DirectShowフィルタのみチェックでOK。

Haali Media Splitter
をインストールする。
Disable MPC internal Matroska splitter
のチェックを外す。

GraphEdit

DirectShowを確認できるソフトだが、Microsoft SDKs\WIndows\V7.1\Bin\
には見つからなかった。最終的にGraphStudioNextというのが近いらしく、これを利用することに。

非公式だが、以下からだとgraph editが行けるらしい。
http://www.digital-digest.com/dvd/downloads/showsoftware_graphedit_141.html

とりあえず動画の再生

Access メモ

DBエンジン(JET)

JETはOS32bit専用(JET自体32bitのみ)なのでOS64bitで動かす場合、
32bitプログラムまたは32bitOfficeで動かす。(WOW64で動かす)
また、JETはaccdbを使えない。
(Accessから直接mdb/accdbを操作する場合は関係なく、64bitAccessからmdbを開くことも可能)

以前はOS標準で搭載されていたため、追加で再頒布可能コンポーネントをインストールする必要がなく便利だったが、現在は非推奨。

・OS64bit/64bitプログラム
利用できない。
・OS64bit/32bitプログラム(32bitOffice)
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxx.mdb”
は利用できる。
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxx.accdb”
は利用できない。

DBエンジン(ACE)

ACEはOS32/64bit(ACE自体が32/64bit存在する)でも使える。
mdb/accdbが使える。

・OS32bit/32bitプログラム(32bitOffice)
・OS64bit/32bitプログラム(32bitOffice)
・OS64bit/64bitプログラム(64bitOffice)
“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx.mdb”
“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx.accdb”
すべて利用できる。

パスワード付きのmd/accdbを開く場合、
“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxx.mdb/accdb;” & “Jet OLEDB:Database Password=xxx”
OS64bit/32bit、OS64bit/64bitプログラムどちらでも利用できる。

OS標準で入らないので、Accessや再頒布可能コンポーネントなどが必要。

DBエンジン確認

にて確認できる。32bitを確認したい場合、
%systemroot%\syswow64\windowspowershell\v1.0\powershell.exe
のPowerShellを起動する。

ADOとDAOの違い

DAOはJETエンジンを対象に開発され、Access専用。
ADOはAccess以外も対象。OLEDBを利用する。

VBA(ADO)での利用

取得方法の種類

OLEDBドライバがない

ExcelからAccess接続したいなと思ったら、インストール可能な ISAM ドライバが見つかりませんでしたと言われた。

どうやら以下を読むと、2016/32bit(サブスクリプション)がクイック形式で入っていて、ドライバが入らないということらしい。

https://blogs.technet.microsoft.com/officesupportjp/2016/09/06/not_available_access_odbc_oledb_outside_c2r_applications/

https://blogs.technet.microsoft.com/officesupportjp/2016/09/08/howto_c2r_or_msi/

MySQLへのエクスポート

DSNを作っておくと自動でエクスポートできるとのこと。

http://dev.mysql.com/downloads/connector/odbc/
からmsiファイルでインストール。

コントロールパネル>管理ツール>ODBCデータソース>ユーザー DSN>追加
Accessを起動してテーブルデザインをエクスポート先のMySQLと合わせる。
テーブルを選択し、
右クリック>エクスポート>ODBC データソース
(すでに存在しているテーブルに上書きはできない)

ストアドプロシージャ

SQLServer

・定義

create procedure ストアドプロシージャ名
@パラメータ名 型
as
begin
処理
end

・変数

宣言
declare @変数名 型

データ型
varchar:文字列
int:数値
decimal:小数
date:日付

代入
set 変数 = 値

・カーソル
1行ずつループして処理する方法。

カーソルの宣言
declare カーソル名 cursor for (select 文)

カーソルを開く
open カーソル名

データの取得
fetch next from カーソル名 into 変数リスト

ループ処理の実行

while 条件式
begin
処理内容 where current of カーソル名
end

※ループの定番
while @@fetch_status = 0

カーソルを閉じる
close カーソル名

カーソルの開放
deallocate カーソル名

MySQL

CREATE ROUTINEの権限が必要。

・基本
create procedure sample01()
select now();
mysql>call sample01;

・削除
mysql>drop procedure sample01;

・一覧
show procedure status;

・中身
show create procedure sample01;

・引数をとる
create procedure sample01(in a int, in b int)
select a + b;
mysql>call sample01(10,5);

・返り値
create procedure sample01(out x int)
set x = 3;
mysql> call sample01(@var);
mysql> select @var;

・複数のクエリを発行
delimiter //
create procedure sample01()
begin
select 1;
select 2;
end//
delimiter ;
mysql> call sample01;

・IF文
delimiter //
create procedure sample02(in x int)
begin
if x = 1 then
select “inp 1”;
elseif x = 2 then
select “int 2”;
else
select “inp else”;
end if
end //
delimiter ;
call sample02(1);

・select~into文で変数へ
delimiter //
create procedure p(in a int, out sum int)
begin
select a * 2 into @tmp;
set sum = @tmp;
end //
delimiter ;
call p (4,@sum);
select @sum;

・カーソル単位で処理する

declare xxx cursorという形で宣言する。
for select でselectの結果を定義する。
fetch cursor for カラムで代入。
処理前にopenして最後にcloseする。

 

Windows ロック画面変更

ロック画面の変更

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Authentication \ LogonUI \ Background

右ペインの何もないところを右クリックし、メニューから<新規>→<DWORD値>と選択して、DWORD値「OEMBackground」を作成します。

DWORD値「OEMBackground」をダブルクリックします。

値のデータを「1」に変更

%windir%\system32\oobe」が開いたら、「info」というフォルダを作成。その中に、「backgrounds」フォルダを作成します。

「backgroundDefault.jpg」同フォルダ内にコピーします。

250KB以下にしないとダメ

Windows 初期設定

Win11 アップグレード

Win10インストール

・ローカルアカウント作成

Win10のローカルアカウントで設定したい場合、ネットワークを切断してインストールする。

Win11などでも
Shift+F10>taskmgr>ネットワーク接続フローを終了
で可能。

・リセットの場合

Win10設定>更新とセキュリティ>回復>このPCを初期状態に戻す

インストールフォント

・MeiryoKe
https://meir000.github.io/MeiryoKe/

・SourceHanCode
以前利用したことがあるが、インストールすると弥生会計17が動かなくなるので注意。

インストールソフト

・Happy Hacking Keyboard キーマップ変更ツール
・AutoHotkey

Edit This Scriptのエディタを変更

 

AutoHotkey キー設定スクリプト

タスクスケジューラを使い管理者権限で起動している。
(現状startupでも問題なし)

・Input Director

Mouse Without BordersからInput Director

・ESET(定額版)

設定>コンピュータ保護>リアルタイムファイルシステム保護>除外の編集
以下を追加。
C:\pagefile.sys
C:\WINDOWS\SoftwareDistribution\DataStore

保護機能は全てを選び、ステータスは有効とする。

・Office 365(Excel)

行番号表示
regsvr32 “G:\Dropbox\Application\VB6IDEAddLineNumbersAddin.dll”

(解除の場合)
regsvr32 /u “G:\Dropbox\Application\VB6IDEAddLineNumbersAddin.dll”

Excel>VBE>アドイン>アドインマネージャ
からロード設定。

※HKCU\SOFTWARE\Microsoft\VBA\VBE\6.0\Addins64
というキーで作成される。

ツール>オプション>編集
自動インデントを2へ。

ツール>オプション>エディタの設定
標準コード、識別子、ブックマーク、呼び出し元
の前景を白、背景を黒へ。

キーワードの前景をシアンへ。

それ以外は背景が白の場合、黒へ。

・Dropbox
・OneDrive
・Explzh
・CrystalDiskInfo
・LINE
・LINE WORKS
・SoftEther

SoftEther Ubuntu/Win インストール

・WatchGuard

会社のVPNに接続のため。

ドライバーの更新は、
https://openvpn.net/community-downloads/
から、OpenVPNをダウンロード、インストール時、Driversだけ選択する。
(バージョンが新しすぎるとダメな場合もあるので注意)

クライアントごと使う場合、

WatchGuard VPN ClientからOpenVPN GUIに変更

・Google ドライブ

タスクトレイ>設定
他のユーザーがMicrosoft Office … どうかを表示する:オフ
ファイルをミラーリングする:オン
Googleドライブのストリーミングの場所:フォルダ

・Google One VPN

googleアカウント管理>GoogleOneに移動>特典
複数デバイスが対象のVPN保護>詳細を表示>アプリをダウンロード

・ScanSnap Manager
・TEPRA Label Editor
・PDF-XChange Lite Printer Free

エクスプローラでサムネイルが表示されるよう設定。

・Adobe Bridge

バージョンによって、
C:\Users\xxx\AppData\Roaming\Adobe\Common\Media Cache Files
に数十GBもキャシュが作られてしまう場合、アクセス管理から該当フォルダのファイル作成を拒否にすればOK。

編集>環境設定>キャッシュ
100%プレビューをキャッシュに保存、チェック外す。

編集>環境設定>サムネール
プレビュー生成よりサムネール生成を優先、チェック。

右上メニュー>プレビューサイズ
埋め込み(最速)、チェック。

・Google Chrome

フォント
設定>デザイン>フォントをカスタマイズ>固定幅フォント

標準フォント:Meiryo
Serifフォント:Meiryo
Sans Serifフォント:Meiryo
固定幅フォント:MeiryoKe_Gothic

・拡張機能

Keyboard Shortcuts to Close Other/Right Tabs
を利用していたが、自作に切替。

・IrfanView
・MPC BE

MPC Video Rendererにチェックしインストール。

表示>オプション>プレーヤー
 シークバーのテキスト:なし
 OSDを表示する:チェック外す

表示>オプション>再生
 繰り返し再生

・iTunes
・Kindle Reader
・DMMブックス
・VSCode

括弧、クォート補完
Editor: Auto Closing Brackets: never
Editor: Auto Closing Quotes: never

・VisualStudio

ツール>オプション>環境>キーボード

1.「以下の文字列を含むコマンドを表示」
から検索し対象のショートカット見つける。

2.「選択したコマンドへのショートカット」
の右側にある削除を実行し、現在のショートカットを削除する。

3.「ショートカットキー」
というラベルのテキストボックスに新しいショートカットを入力し割り当てを実行する。

ウィンドウ.次のタブ:Ctrl+Tab
ウィンドウ.前のタブ:Ctrl+Shift+Tab
ファイル.閉じる:Ctrl+W
表示.戻る:Alt+Left
表示.次に進む:Alt+Right
編集.行の削除:Alt+L
編集.選択した行を上へ移動:Alt+K
編集.選択した行を下へ移動:Alt+J
ファイル.このウィンドウ以外すべて閉じる:Shift+Alt+Z
※AutoHotkeyでAlt+Zとして利用
※インストールできる場合CloseTabsToRightを利用

ツール>オプション>デバッグ

出力ウィンドウの文字をすべてイミディエイトウィンドウにリダイレクトする
チェックする。

エディットコンティニュを有効にする
チェックを外す。

ツール>オプション>環境>フォントおよび色
テキストエディター
MeiryoKe_Gothic/13

拡張機能
Viasforaインストール

Visual Studio 2022 CloseTabsToRightインストール

・FFmpeg

バイナリを直接Winフォルダなどに入れる。

・MySQL Workbench
・Microsoft SQL Server Management Studio(SSMS)

オプション>デザイナー>テーブルの再作成を…にする
チェックを外す。

SQL Server メモ

・DB.Browser.for.SQLite
・VMware Workstation Player
・Docker Desktop

DockerDesktop用Hyper-V の設定

・Google日本語入力

入力補助>変換前文字列
全て半角

辞書には せん ——————————————————– だけ登録

AutoHotkeyに合わせてキー設定の変更を実施。

・PDFelement
ファイル>環境設定>一般
最近使用したファイルリスト:0
デフォルトズーム:ウィンドウに合わせる
トップメッセージバーを常に非表示にする:オン
ファイルの自動保存の間隔:オフ

・GIMP

テーマより
C:\Program Files\GIMP 2\share\gimp\2.0\themes\Dark\gtkrc
style “gimp-dark-default-style”
の中に
font_name = “MS UI Gothic 10”
と追記し、
GimpDock::font-scale = 0.8333
を1に変更。

ショートカットを以下のように指定
“C:\Program Files\GIMP 2\bin\gimp-2.10.exe” -f -s
f:フォントを読み込まない
s:スプラッシュスクリーンを表示しない

・EmEditor

EmEditor 設定メモ

・弥生会計17

SQL Server メモ

・DaVinci Resolve
・Sound Forge
・StreamlabsOBS
・4K Video Downloader
・TClock
https://github.com/MantisMountainMobile/TClock-Win10
フォント:Meryo UI / 10
書式:[Y] yy/mm/dd (ddd)\n hh:nn:ss

・G HUB(廃止)

ここではG304を設定
DPI 速度:1300
レポートレート:250(節電のため)
DPIボタン:無効化
サイドボタン1:F13
サイドボタン2:F14
センターボタン:F15
オンボードモード:オン
※オンボードにしないと操作の間隔が空いた後、動かしはじめに違和感があるため。

・GreenShot

設定

・ゲームバー無効

Win10設定>ゲーム>Xbox Game Bar
チェックを外す。

・IME切替無効

Alt+Shift

Win10設定>時刻と言語>言語>キーボード>入力言語のホットキー>キーの詳細設定
入力言語を切り替え>キーシーケンスの変更
割り当てなしに設定

Win+Space

Win10設定>時刻と言語>言語>優先する言語の日本語>オプション>キーボード
表示されている不要なIMEを削除。
あるいはAutoHotkeyにて
#Space::
を設定。

・マウス設定

ポインターの速度を6にして、ポインターの精度を高めるを外す。

マウスDPIとマウス速度
(マウスのプロパティ>ポインターオプション>速度)
という2つあるが、マウスDPIで調整した方がいい。

DPIとは物理的な1inch(2.54cm)で何ピクセル動くかと考えると分かりやすい。

・Logitec LDE-WX015U

ドライバ
https://www.displaylink.com/downloads/windows

・Administrator表示

net user administrator /active:yes

・Windowsフォルダにショートカット保存

d = dropboxフォルダ
s = DeInput
ir = IrfanView

・固定キー機能の停止

Win10設定>簡単操作>キーボード

固定キー機能を使用する
からチェックを外す。

・クイック起動作成

新規ツールバーで以下を追加
shell:quick launch

Explorer 設定

Windows 端末的利用

Windows 不具合関連

Windows SMB1.0無効化

C# Seleniumの利用

Selenium Client & WebDriver Language BindingsのC#をダウンロードする。

解凍した中身をコピーする。

C:\Windows\Microsoft.NET\Framework\v4.0.30319

csc.exeがある場所と同階層にcsc.rspがあるのでと追記する。

/r:Selenium.WebDriverBackedSelenium.dll

/r:ThoughtWorks.Selenium.Core.dll

/r:WebDriver.dll

/r:WebDriver.Support.dll

.Netの標準dll以外で参照設定したサードパーティのdllは実行ファイルと実行ファイルと同フォルダ内に配置する。

Firefox以外は作成した実行ファイルと同じ場所にDriverが必要。

The Internet Explorer Driver Serverから32 bit Windows IEをダウロードする。

解凍した実行ファイル(IEDriverServer.exe)は作成した実行ファイルと同一階層におく必要はないが、パスが通ってないとダメ?ためしに、c:\置いたけどエラーがでる。

C:\Windows\Microsoft.NET\Framework\v4.0.30319に置くか、作成した実行ファイルと同一階層なら大丈夫だった。

 

MySQL alter、select評価順

・準備

create database DB character set utf8;

use DB;

drop table if exists TABLE1;
create table TABLE1(
id int primary key auto_increment not null,
name varchar(255)
) default character set=utf8

・Alter

テーブルのリネーム
alter table TABLE1 rename TABLE2;

列の追加
alter table TABLE2 add column NAME2 varchar(255);

列の変更
alter table TABLE2 change NAME2 NAME3 int;

列の削除
alter table TABLE2 drop NAME3;

作成済みデータベースの文字コード変更
alter database DB character set utf8;

制約の追加方法
alter table TABLE1 add unique (NAME);

ちなみに、primaryとuniqueは複数指定すると、複合になるのでuniqueをそれぞれ複数の列の場合、
create table tbl (id int ,nm varchar(5) , unique(id) , unique(nm));
のように指定。

・制約の種類

not null
check
unique key
primary key
foreign key

・select式の評価順

from
on – join
where
group by
having
select
distinct
order by
top(limit)

・文字列型

https://dev.mysql.com/doc/refman/8.0/ja/char.html

char(n)
固定長で、右側にスペースが埋められる。

varchar(n)
可変長、255を超えてnを指定するとプリフィックスが2バイトとなる。プリフィックス格納されたデータに対するストレージとは別。ストレージについてはtextもvarcharも保存した容量のみ。

両方とも、nはバイトではなく文字数。また、MyISAMとInnoDBでの違いがあるので、注意。5.5未満はMyISAM、5.5以降はInnoDB

Ubuntu Apache(htaccess) 設定

Basic認証

.htaccessファイルを作成し、以下を記述。

AuthUserFile /home/okamura/.pwd

AuthName “please enter”

AuthType Basic

Require valid-user

.pwdの名称はなんでもいいが指定はフルパスにする。

一般的には.htpasswdとする。

htpasswd -c /home/okamura/.pwd taro

New password:xxx

Re-type new password:xxx

-cオプションがなくhtpasswdコマンドだけだと、追加、変更。-dオプションを付けるとと削除となる。

apache2ctl -M

有効なモジュールを確認できる。

sudo a2enmod rewrite

rewriteを有効化する。

/etc/apache2/apache2.conf

で、該当するDirectoryにAllowOverride allを追加する。

sudo /etc/init.d/apache2 restart

転送

301は恒久的(元のキャッシュが消える)な転送302(元のキャッシュが残る)は一時的な転送。

外部サイトに転送している設定。Rに数字をいれないと302転送。

RewriteEngine On

RewriteRule ^ http://start-affiliate-life.com [R,L]

メインディレクトリをサブに飛ばす設定。

RewriteEngine On

RewriteCond %{REQUEST_URI} !/w

RewriteRule ^(.*)$ /w/ [R,L]

RewriteCond が true の時 RewriteRuleが実行される。

RewriteCond %変数名(テスト文字列) 条件パターン(正規表現) [フラグ]。

PHP関連

変数登録の優先順位

variables_order = “EGPCS”

外部ホストへのアクセス

allow_url_fopen = off

エラーレポート

error_reporting = E_ALL & ~E_NOTICE & E_STRICT

E_NOTICEとE_STRICT以外は全てという意味 ~ は否定の意味

画面へエラーを表示

display_errors = off

エラーのログを出力(Windowsの場合はイベントログにエラーがいくらしい)

log_errors = On

error_log = file name

セーフモード

safe_mode_gid = On

セーフモードはファイルオープンはスクリプトと同じ所有者のファイルのみになる。

重要なのはセーフモードを使うときはスクリプトの所有者を一般ユーザーにしておくこと。

セーフモードはdlや()やshell_execが使えない。

exec,system,passthru,popenはsafe_mode_exec_dirで指定したディレクトリに制限される。

open_base_dir ファイル操作できるフォルダを限定。

disable_functions 使える関数を制限。