VSCode 설정 참고 : 현재 탭 디렉토리의 Makefile을 한 번에 호출합니다.

메모장 ++에서 VS 코드로



지금까지 다양한 텍스트 편집기를 사용해 왔으며 만족스러운 편집기는 Notepad++뿐이었습니다.
그러나 최근 VS Code拡張機能의 조합은 동등한 기능을 실현할 수 있었기 때문에 입력 완성이 우수한 VS Code로 전환했습니다.

메모장++



지금까지 텍스트 편집에서 프로그래밍, LaTeX까지 모두 Notepad++에서 왔습니다.NppExec라는 플러그인이 우수했으며 Notepad++에 터미널 환경을 제공했습니다.

또한 Follow ${CURRENT_DIRECTORY}라는 신성한 옵션이있었습니다.
이 기능은 아래 터미널의 디렉토리가 현재 열려있는 탭의 계층 구조가된다는 것입니다.

또한 F6 키로 등록 된 명령을 실행할 수있었습니다.
따라서 항상 make를 등록하고 현재 디렉토리를 신경 쓰지 않고 F6를 누르면 컴파일 할 수있었습니다.

LaTeX 용 Makefile



현재 디렉토리의 모든 .tex 파일을 컴파일합니다.

Makefile
FILE = $(wildcard *.tex)
PDF  = $(FILE:.tex=.pdf)
DVI  = $(FILE:.tex=.dvi)

.PHONY:run
run:$(PDF) $(DVI)

%.pdf: %.dvi
    dvipdfmx $<
    # cmd /c start $@

%.dvi: %.tex
    platex $<
    # pbibtex $*

#クリーンして実行
.PHONY: all
all: clean run

#クリーン
.PHONY:clean
clean: 
    rm -f $(PDF) $(DVI)
  • cmd /c start $@ 코멘트 아웃을 제거하면 컴파일 후 PDF 열기
  • pbibtex $*는 .bib 용

  • C++ 용 Makefile



    cpp 컴파일 용.

    Makefile
    
    ###################################################
    # Makefile (*.cppをコンパイルする場合)
    # コンパイルしたいソースがあるフォルダと同じところに置く
    # ディレクトリ階層図
    # this
    # |--- *.cpp          (コンパイルしたいソースファイル)
    # |--- Makefile
    # |--- run.exe        (生成される実行ファイル)
    # |--- obj            (生成されるフォルダ)
    #      |--- *.o       (生成されるオブジェクトファイル)
    #      |--- *.d       (生成される依存関係ファイル)
    #
    # 実行コマンド
    # make         (更新されたファイルのみコンパイル)
    # make all     (クリーンしてビルド)
    # make clean   (クリーン)
    ###################################################
    AR       = ar
    ARFLAGS  = rus
    
    CXX      = g++
    CXXFLAGS = -g -MMD -MP -Wall -Wextra -Winit-self -Wno-unused-parameter -std=c++11 -O3
    
    RM       = rm -f
    LDFLAGS  =
    LIBS     =
    INCLUDE  = 
    #実行ファイル
    TARGET   = ./run.exe
    #オブジェクトファイル保存フォルダ
    OBJDIR   = ./obj
    #ソースファイル
    SOURCES  = $(wildcard *.cpp)
    #オブジェクトファイル
    OBJECTS  = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
    #依存関係ファイル
    DEPENDS  = $(OBJECTS:.o=.d)
    #実行ファイル作成
    $(TARGET): $(OBJECTS) $(LIBS)
        $(CXX) -o $@ $^ $(LDFLAGS)
    #ソースファイルをコンパイル
    $(OBJDIR)/%.o: %.cpp
        @if [ ! -d $(OBJDIR) ];\
        then echo "mkdir -p $(OBJDIR)";mkdir -p $(OBJDIR);\
        fi
        $(CXX) $(CXXFLAGS) $(INCLUDE) -o $@ -c $<
    
    #クリーンしてビルド
    .PHONY: all
    all: clean $(TARGET)
    
    #クリーン
    .PHONY:clean
    clean:
        $(RM) $(OBJECTS) $(DEPENDS) $(TARGET)
    
    -include $(DEPENDS)
    

    ※ Makefile의 들여 쓰기는 모두 Tab입니다.
    Copipe는 4 개의 공간을 가지므로 \t로 바꿉니다.

  • 참고 문헌: 간단하고 응용이 효과적인 makefile과 그 해설

  • VS 코드



    VS Code는 원래 터미널을 가지고 있지만 nppExec와 같은 현재 탭을 따르는 기능은 없습니다.Ctrl+@에서 터미널을 열면 특별히 설정하지 않은 경우 $HOME에서 열 수 있습니다.

    그러나 확장 기능 terminal-command-keys을 사용하면 nppExec에 가깝습니다.
    확장 프로그램을 설치 한 후 Ctrl+K, Ctrl+Skeybindings.json에 다음을 추가하십시오.
        {
            "key": "F5",
            "command": "terminalCommandKeys.run",
            "args": {
                "cmd": "cd `dirname \"${file}\"`;make"
            }
        },
        {
            "key": "ctrl+F5",
            "command": "terminalCommandKeys.run",
            "args": {
                "cmd": "cd `dirname \"${file}\"`"
            }
        },
        {
            "key": "shift+F5",
            "command": "terminalCommandKeys.run",
            "args": {
                "cmd": "!!"
            }
        },
    

    이 예에서 F5를 누르면 현재 탭의 디렉토리에서 make를 실행합니다.Ctrl + F5에서 현재 탭의 디렉토리로 이동할 수 있습니다.
    이렇게하면 터미널 디렉토리를 의식하지 않고 make를 실행할 수 있습니다.Shift + F5에서 이전 명령을 실행할 수 있습니다. (!! : 이전 명령 실행을 나타냅니다.)
    Ctrl+,에서 settings.json에 다음 설정이 필요합니다."terminal.integrated.commandsToSkipShell": 항목 목록에 "terminalCommandKeys.run"를 추가하십시오.

    기타 설정



    settings.json


  • 문자 코드 자동 판정 ON
  • "files.autoGuessEncoding": true,

  • LaTeX Workshop 자동 컴파일 OFF
  • "latex-workshop.latex.autoBuild.onSave.enabled": false,
  • "latex-workshop.latex.autoBuild.run": "never",

  • Cygwin terminal로 변경
  • "terminal.integrated.shell.windows": "C:\\cygwin64\\bin\\bash.exe",
  • "terminal.integrated.shellArgs.windows": ["--login", "-i"],

  • 공간 표시
  • "editor.renderWhitespace": "all",

  • 글꼴 크기 조정
  • "editor.fontSize": 13,
  • "terminal.integrated.fontSize": 13,

  • 제목 표시 줄에 전체 경로 표시
  • "window.title": "${activeEditorLong} - VS Code",


  • keybindings.json


  • 탭 전환으로 보기 순서대로 이동(이력 순서 해제)
  • 
        {
            "key": "ctrl+tab",
            "command": "workbench.action.nextEditor"
        },
        {
            "key": "ctrl+shift+tab",
            "command": "workbench.action.previousEditor"
        },
    

    확장 기능


  • Bracket Pair Colorizer
  • C/C++
  • Japanese Language Pack for VS Code
  • LaTeX Workshop
  • Matlab
  • Python
  • Rainbow CSV
  • Reopen Closed Tab
  • terminal-command-keys
  • Python Docstring Generator
  • TabNine
  • Remote ssh
  • 좋은 웹페이지 즐겨찾기