hyeonk lab

블로그 이미지

hyeonk

hello world! hyeonk lab.

[ECLIPSE란?] Eclipse단축키

eclipse 2013. 10. 16. 10:51

■ [ECLIPSE란?] Eclipse단축키모음

 

▒ Ctrl & F11 ☞ 이전 실행 Run파일 실행.

▒ Ctrl & Shift & B ☞ 현제 커서 위치에 브레이크 포인터 설정 및 해제

▒ F11 ☞ 디버깅 시작

▒ F8 ☞ 디버깅 계속

▒ Ctrl & R☞ 현재 라인까지 실행(Run to Line)

▒ F6 ☞ 한 줄씩 실행(Step Over)

▒ F5☞ 한 줄씩 실행하되 함수일 경우 그 함수 내부로 들어감(Step Into)

▒ F7 ☞ Step Return

▒ Ctrl & F2 ☞ 프로그램 종료

<!--[if !supportEmptyParas]--> <!--[endif]-->

<!--[if !supportEmptyParas]--> <!--[endif]-->

 

■ Editor 단축키(소스 추가, 수정, 이동, 삭제, 정렬 등)

 

▒ Ctrl & D Delete Line - 줄 삭제

▒ Ctrl & Alt & UP or DOWN ☞ Duplicate Lines - 줄 복사

▒ Ctrl & Shift & ENTER ☞ Insert Line Above Current Line - 현재 줄에 새로 추가

▒ Shift & ENTER ☞ Insert Line Below Current Line - 다음 줄에 새로 추가

▒ Ctrl & N ☞ 새로운 파일 및 프로젝트 생성.

▒ Ctrl & / or \☞ Toggle Comment - 한줄 주석 및 해제

▒ Ctrl & Shift & / or \☞ 블럭 주석 설정 및 해제

▒ Ctrl & Shift & F☞ 코드 자동 정리(선택한 블록을 자동으로 줄을 정렬함)

▒ Ctrl & I ☞ Indent Line - 제대로 된 위치의 들여쓰기

▒ Ctrl & Shift & F ☞ Format - 탬플릿에 지정된 대로 코드 포맷 변경

▒ Ctrl & Shift & M☞ 특정 클래스 Import 시키기

▒ Ctrl & Shift & O ☞ Organize Imports - 필요없는 import 제거

▒ Alt & Shift & J ☞ Add Javadoc Comment - Javadoc타입의 주석 붙임

▒ Alt & Shift & UP or Down☞ 커서를 기준으로 토큰단위 블록지정 및 해제

▒ Alt & Shift & J☞ 자동으로 주석 달기 (메소드나 멤버변수에 포커스 두고 실행)

▒ Alt & Shift & Z ☞ Surround With 메뉴 표시

▒ Alt & Shift & S ☞ Source Quick Menu - 빠른 소스메뉴

▒ Ctrl & M ☞ Maximize Active View or Editor - 선택된 뷰 최대화

▒ Ctrl & Shift & S ☞ 모두 저장

▒ Ctrl & Shift & W ☞ 모두 닫기

▒ Ctrl & Shift & R ☞ 자원 열기

▒ Ctrl & Shift & Y ☞ 대문자를 소문자로

▒ Ctrl & Shift & X ☞ 소문자를 대문자로

▒ Ctrl & Shift & E ☞ 커서에서 줄 끝가지 삭제

▒ Ctrl & Shift & F ☞ 코드 자동 정리

 

■ Assist 및 comment 단축키(Quick Fix 등 도움을 주는 기능들)

 

▒ Ctrl & Space ☞ Content Assist - 코드 작성을 도와준다. 자동완성을 지원함

▒ Ctrl & Shift & Space ☞ Parameter 힌트 표시

▒ Ctrl & 1☞ Quick Fix. 에러가 발생했을 경우 Quick Fix를 통해 쉽게 해결이 가능하다.

▒ Ctrl & . or , ☞ 다음/이전 어노테이션(에러, 경고)으로 이동

▒ F12 ☞ 컴파일 중 에러등으로 포커스가 다른데로 갔을 때 Editor 로 커서 이동

▒ sysout & Ctrl & Space ☞ System.out.println() 자동 완성

▒ try & Ctrl & Space ☞ try{}catch(){} 자동 완성

▒ for & Ctrl & Space ☞ for문 자동 완성

 

 

 

■ Find(찾기)

 

▒ Ctrl & F ☞ 찾기/바꾸기

▒ Ctrl & H ☞ 자바의 클래스, 타입, 함수 이름 등으로 찾을 수 있다. Search 다이얼로그 표시

▒ Ctrl & J & next(Down, Up) ☞ 점층적 찾기

▒ Ctrl & Shift & J ☞ 역으로 점층적 찾기

▒ Ctrl & Shift & G☞ 특정 메써드나 필드를 Reference하고 있는 곳을 찾는다.

▒ Ctrl & K ☞ Selection Word Search - 선택한 문자열과 동일한 다음 문자열 찾기

▒ Ctrl & Shift & K ☞ 선택한 문자열과 동일한 이전 문자열 찾기

▒ Ctrl & Shift & T ☞ 클래스 찾기(Open Type 다이얼로그 표시)

 

■ Move(이동)

▒ Ctrl & L☞ 특정 줄번호로 가기

▒ Ctrl & Shift & P ☞ 매칭되는 괄호로 이동

▒ F3 ☞ 선택한 요소의 선언된 곳으로 이동

▒ Ctrl & PgUp or PgDn ☞ 다음/이전 에디터를 활성화

▒ Ctrl & F6 ☞ 다음 에디터로 이동(Ctrl & Tab 기능)

▒ Ctrl & RIGHT ☞ Next Word - 다음 문자로 이동

▒ Ctrl & LEFT ☞ Previous Word - 이전 문자로 이동

▒ Ctrl & Q ☞ 가장 최근 편집한 위치로 이동(단축키로 이동했을 때, 이전 작업으로 돌아가기)

▒ Ctrl & E ☞ 다음 에디터로 이동

▒ Ctrl & Shift & F5 ☞ 이전 에디터로 이동

▒ Ctrl & Shift & E ☞ Switch to Editor - 열려있는 에디터간 이동

▒ Ctrl & F8 ☞ 다음 Perspective로 이동(java->javaEE->SVN->...)

▒ Ctrl & Shift & F8 ☞ 이전 Perspective로 이동(java->javaEE->SVN->...)

▒ Alt & <- ☞ 이전 작업 화면

▒ Alt & -> ☞ 다음 작업 화면

▒ Ctrl & F7 ☞ 다음 View로 이동.(Package Explorer->Editor->Explorer->...)

▒ Ctrl & Shift & F7 ☞ 이전 View로 이동.

▒ Ctrl & Shift & Up or Down ☞ 클래스의 이전(또는 다음) 맴버로 이동

▒ F10 ☞ 메뉴창을 활성화

 

 

 

 

■ View(트리 및 단축키 등 구조 보기)

 

▒ Ctrl & Shift & L ☞ 단축키 보기 (한 번 더 누르면 키 설정메뉴로 들어감)

▒ Ctrl & Alt & H ☞ 메서드 호출 구조 표시

▒ F4 ☞ Open Type Hierarchy - 현재 클래스의 상속관계를 보여주는 창이 열린다.

▒ Ctrl & T ☞ Quick Hierarchy - 간단하게 현재 클래스의 상속 관계를 보여준다.

▒ Ctrl & O ☞ Quick Outline - 현재 클래스의 메서드, 맴버변수등을 보여준다.

 

■ Refactoring 단축키

 

▒ Alt & Shift & T ☞ Refactor Quick Menu - 리펙토링 메뉴 바로가기

▒ Alt & Shift & R☞ 이름 변경(Rename)

▒ Alt & Shift & V ☞ 이동(Move)

▒ Alt & Shift & C ☞ Change Method Signature

▒ Alt & Shift & M ☞ Extract Method

▒ Alt & Shift & L ☞ Extract Local Variable

▒ Alt & Shift & I ☞ Inline

 

 


■ 기타 힌트

 

▒ Eclipse 단축키 확인 및 변경

 

Eclipse의 모든 단축키는 Window >> Preferences >> Workbench >> Keys 메뉴에서 확인 및 변경이 가능합니다. 그 동안 다른 툴에서 자신의 손에 익숙한 단축키들이 있다면 이 메뉴에서 단축키들을 변경하는 것이 가능합니다.

 

<!--[if !supportEmptyParas]--> <!--[endif]-->

 

▒ 이클립스 단축키 저장 파일

 

%workspace%\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.ui.workbench.prefs

<!--[if !supportEmptyParas]--> <!--[endif]-->

 

이클립스 에디터 클릭시 패키지익스플로러에서 경로를 자동으로 찾아가게 하시려면

탐색트리 상단 우편에 드답다운메뉴 클릭하시고 link with editor 체크해주시면 됩니다

 

출처: http://blog.naver.com/PostView.nhn?blogId=yayatom&logNo=10116146436&parentCategoryNo=&categoryNo=54&viewDate=&isShowPopularPosts=true&from=search

저작자표시 (새창열림)
Posted by hyeonk

클래스, 함수 설명 주석 매크로

visual_studio 2013. 8. 8. 11:42

참조: http://majorss.tistory.com/29

 

- 함수 주석 매크로

' Usage : 함수를 모두 선택(ex : int GetLength(char strArr[]))후 매크로 실행

 

- 클래스 주석 매크로

' Usage : 클래스 이름을 선택(ex : class MyTest : public base)후 매크로를 실행

 

 

Option Strict Off
Option Explicit Off

 

'Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.ControlChars

 

Public Module MyModule

    Dim ParamArr() As String
    Dim previousSelection As String
    Dim completionWords As String
    Dim completionWordsIndex As Integer

 

    Function StripTabs(ByVal MyStr As String)
        ' 앞에 있는 탭 공백을 제거합니다.
        While InStr(MyStr, Microsoft.VisualBasic.ControlChars.Tab) > 1
            MyStr = Right(MyStr, Len(MyStr) - InStr(MyStr, CStr(Microsoft.VisualBasic.ControlChars.Tab)))
        End While
        StripTabs = Trim(MyStr)
    End Function

 

    Sub AddFunctionComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 주석 블록을 만듭니다.
        Dim Header, prms As String
        Dim fcName, Descr As String
        Dim iPrm, iPrmA As Integer
        Dim selection As EnvDTE.TextSelection
        Dim RetTp As String

        ' 이 파일 전체에서 DTE.ActiveDocument.Selection이
        ' DTE.ActiveDocument.Selection.Text 대신 사용됩니다. 이 둘은
        ' 동일하므로 서로 바꿔 사용할 수 있습니다. 이 둘이 같은 이유는 Text가
        ' 사용할 기본 속성으로 간주되기 때문입니다. 다른 속성 없이
        ' ActiveDocument.Selection을 사용하면 기본적으로 Text 속성이
        ' 사용됩니다.
        If (DTE.ActiveDocument Is Nothing) Then
            Exit Sub
        End If
        If DTE.ActiveDocument.Language = EnvDTE.Constants.dsCPP Or DTE.ActiveDocument.Language = "CSharp" Then

            selection = DTE.ActiveDocument.Selection()
            Trim(selection.Text)
            Header = ""

            If selection.Text <> "" Then
                Header = StripTabs(Trim(selection.Text))
            End If

            ' 함수 반환 형식을 가져옵니다.
            If Header <> "" Then
                If DTE.ActiveDocument.Language = "CSharp" Then
                    ' public/private 등과 같은 보호 정보를 건너뜁니다.
                    Header = Right(Header, Len(Header) - InStr(Header, " "))
                End If
                Reti = InStr(Header, " ")
                Loc1 = InStr(Header, "(")
                If Reti < Loc1 Then
                    RetTp = Left(Header, Loc1 - 1)
                    Header = Right(Header, Len(Header) - Reti)
                End If
                RetTp = Left(RetTp, InStr(RetTp, " "))

                ' 함수 이름을 가져옵니다.
                Loc1 = InStr(Header, "(") - 1
                Loc2 = InStr(Header, ")")

                If Loc1 > 0 And Loc2 > 0 Then ' '(' 및 ')'가 있는지 확인합니다.
                    fcName = Left(Header, Loc1)
                    Header = Right(Header, Len(Header) - Len(fcName))

                    ' 반환 형식에 저장소 형식이 있는지 여부
                    Trim(fcName)
                    If InStr(fcName, " ") <> 0 Then
                        RetTp = RetTp + Left(fcName, InStr(fcName, " "))
                        fcName = Right(fcName, Len(fcName) - InStr(fcName, " "))
                    End If

                    ' 함수 매개 변수를 가져옵니다.
                    iPrm = 0
                    iPrmA = 0
                    prms = Header

                    ' 매개 변수 개수를 계산합니다.
                    Do While InStr(prms, ",") <> 0
                        iPrm = iPrm + 1
                        prms = Right(prms, Len(prms) - InStr(prms, ","))
                    Loop

                    ' 배열에 매개 변수 목록을 저장합니다.
                    If iPrm > 0 Then ' 매개 변수가 여러 개인 경우입니다.
                        iPrm = iPrm + 1
                        iPrmA = iPrm
                        ReDim ParamArr(iPrm)
                        Do While InStr(Header, ",") <> 0
                            ParamArr(iPrm - 1) = Left(Header, InStr(Header, ",") - 1)
                            ' 첫 번째 매개 변수에서 중괄호를 제거합니다.
                            If InStr(ParamArr(iPrm - 1), " (") <> 0 Then
                                ParamArr(iPrm - 1) = Right(ParamArr(iPrm - 1), (Len(ParamArr(iPrm - 1)) - (Len(ParamArr(iPrm - 1)) - (Len(ParamArr(iPrm - 1)) - InStr(ParamArr(iPrm - 1), " (")))))
                                Trim(ParamArr(iPrm))
                            End If
                            Header = Right(Header, Len(Header) - InStr(Header, ","))
                            iPrm = iPrm - 1
                        Loop
                        ParamArr(iPrm - 1) = Header

                        ' 마지막 매개 변수에서 닫는 중괄호를 제거합니다.
                        If InStr(ParamArr(iPrm - 1), ")") <> 0 Then
                            ParamArr(iPrm - 1) = Left(ParamArr(iPrm - 1), InStr(ParamArr(iPrm - 1), ")") - 1)
                            Trim(ParamArr(iPrm - 1))
                        End If
                    Else ' 대부분 매개 변수가 하나인 경우입니다.

                        ReDim ParamArr(1)
                        Header = Right(Header, Len(Header) - 1) ' 첫 번째 중괄호를 제거합니다.
                        Trim(Header)
                        ParamArr(0) = StripTabs(Header)
                        If InStr(ParamArr(0), ")") <> 1 Then
                            ParamArr(0) = Left(ParamArr(0), InStr(ParamArr(0), ")") - 1)
                            Trim(ParamArr(0))
                            iPrmA = 1
                        End If
                    End If

                    ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
                    DTE.ActiveDocument.Selection.LineUp()
                    DTE.ActiveDocument.Selection.LineDown()
                    DTE.ActiveDocument.Selection.StartOfLine()
                    selection = DTE.ActiveDocument.Selection()
                    'selection.text = Lf

                    Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
                    Descr = Descr + "/// @Function Name : " + fcName + CStr(Lf)
                    Descr = Descr + "/// @Description   : " + CStr(Lf)
                    Descr = Descr + "/// @Return Type   : " + RetTp + Chr(9) + "-> (설명)" + CStr(Lf)

                    ' 매개 변수 목록을 인쇄합니다.
                    Last = iPrmA
                    Do While iPrmA <> 0
                        ' 모든 argumentextSelection에서 줄 바꿈을 제거합니다.
                        If InStr(ParamArr(iPrmA - 1), CStr(Lf)) <> 0 Then
                            ParamArr(iPrmA - 1) = Right(ParamArr(iPrmA - 1), (Len(ParamArr(iPrmA - 1)) - (Len(ParamArr(iPrmA - 1)) - (Len(ParamArr(iPrmA - 1)) - InStr(ParamArr(iPrmA - 1), CStr(Lf))))))
                            Trim(ParamArr(iPrmA - 1))
                        End If
                        ParamArr(iPrmA - 1) = StripTabs(ParamArr(iPrmA - 1))
                        ' 매개 변수가 둘 이상인 경우 첫 번째 매개 변수의 앞에
                        ' '('가 붙어 있게 됩니다. 여기에서 이를 제거합니다.
                        If iPrmA = Last And Last <> 1 Then
                            ParamArr(iPrmA - 1) = Right(ParamArr(iPrmA - 1), Len(ParamArr(iPrmA - 1)) - 1)
                        End If
                        Descr = Descr + "/// @Parameter     : " + ParamArr(iPrmA - 1) + Chr(9) + "-> (설명)" + CStr(Lf)
                        iPrmA = iPrmA - 1
                    Loop
                    Descr = Descr + "/// @Author        : Seung Hyeon Kim" + CStr(Lf)
                    selection = DTE.ActiveDocument.Selection()
                    selection.Text = Descr
                Else
                    MsgBox("It is possible that the function you are trying to work with has a syntax error.")
                End If
            End If
        Else
            MsgBox("You need to have an active C/C++ document open" + CStr(Lf) + "with the function prototype selected.")
        End If
    End Sub

 

    Sub AddSimpleFunctionComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 기능설명 주석 블록을 만듭니다.
        Dim selection As EnvDTE.TextSelection

        ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
        DTE.ActiveDocument.Selection.LineUp()
        DTE.ActiveDocument.Selection.LineDown()
        DTE.ActiveDocument.Selection.StartOfLine()
        selection = DTE.ActiveDocument.Selection()

        Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
        Descr = Descr + "/// @기능설명  : " + CStr(Lf)
        Descr = Descr + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)

        selection = DTE.ActiveDocument.Selection()
        selection.Text = Descr
    End Sub

 

    Sub AddClassComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 주석 블록을 만듭니다.
        Dim CName As String
        Dim selection As EnvDTE.TextSelection

        ' 이 파일 전체에서 DTE.ActiveDocument.Selection이
        ' DTE.ActiveDocument.Selection.Text 대신 사용됩니다. 이 둘은
        ' 동일하므로 서로 바꿔 사용할 수 있습니다. 이 둘이 같은 이유는 Text가
        ' 사용할 기본 속성으로 간주되기 때문입니다. 다른 속성 없이
        ' ActiveDocument.Selection을 사용하면 기본적으로 Text 속성이
        ' 사용됩니다.
        If (DTE.ActiveDocument Is Nothing) Then
            Exit Sub
        End If
        If DTE.ActiveDocument.Language = EnvDTE.Constants.dsCPP Or DTE.ActiveDocument.Language = "CSharp" Then

            selection = DTE.ActiveDocument.Selection()
            Trim(selection.Text)

            CName = StripTabs(Trim(selection.Text))

            ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
            DTE.ActiveDocument.Selection.LineUp()
            DTE.ActiveDocument.Selection.LineDown()
            DTE.ActiveDocument.Selection.StartOfLine()

            Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
            'Descr = Descr + "/**" + CStr(Lf)
            Descr = Descr + "/// @Class Name    : " + CName + CStr(Lf)
            Descr = Descr + "/// @Description   : " + CStr(Lf)
            Descr = Descr + "/// @Author        : Seung Hyeon Kim" + CStr(Lf)
            Descr = Descr + "/// @Warning       : " + CStr(Lf)
            Descr = Descr + "/// @Date          : " + System.DateTime.Now.ToShortDateString() + CStr(Lf)
            'Descr = Descr + "*/" + CStr(Lf)

            selection = DTE.ActiveDocument.Selection()
            selection.Text = Descr
        Else
            MsgBox("It is possible that the class you are trying to work with has a syntax error.")
        End If
    End Sub


End Module

 

저작자표시 (새창열림)

'visual_studio' 카테고리의 다른 글

Visual Studio 단축키 활용하기  (0) 2013.01.21
Posted by hyeonk

IsUtf8() - 문자열이 Utf8인지 체크하는 함수

c & c++ 2013. 8. 6. 12:28
[-] Collapse
전체 문자열을 검사하여 한 문자열이라도 utf8 코드가 들어 있는 경우 true를 리턴

bool IsUtf8(const char* str)
{
    int str_bytes = 0;
    if(str == NULL ) {
        return false;
    }
    str_bytes = (int)strlen(str);

    bool isUtf8(true);

    int index = 0;
    while (index < str_bytes && isUtf8)
    {
        char achar = str[index];
        int supplemental_bytes = 0;

        if ((achar & 0x80) == 0) {
            // 0xxxxxxx
            ++index;
        }
        else if ((achar & 0xF8) == 0xF0) {
            // 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx
            ++index;
            supplemental_bytes = 3;
        }
        else if ((achar & 0xE0) == 0xE0) {
            // 1110zzzz 10yyyyyy 10xxxxxx
            ++index;
            supplemental_bytes = 2;
        }
        else if ((achar & 0xE0) == 0xC0) {
            // 110yyyyy 10xxxxxx
            ++index;
            supplemental_bytes = 1;
        }
        else {
            isUtf8 = false;
        }

        while (isUtf8 && supplemental_bytes--)
        {
            if (index >= str_bytes) {
                isUtf8 = false;
            }
            else if ((str[index++] & 0xC0) != 0x80) {
                // 10uuzzzz
                isUtf8 = false;
            }
        }
    }
    return isUtf8;
}

 

출처: http://ancdesign.tistory.com/33

저작자표시 (새창열림)

'c & c++' 카테고리의 다른 글

10년 만에 새로 태어나는 ‘모던 C++’  (0) 2014.11.04
안전한 문자열 함수들  (0) 2013.05.03
extern "C" 에 관하여...  (0) 2013.04.16
Posted by hyeonk
이전페이지 다음페이지
블로그 이미지

hello world! hyeonk lab.

by hyeonk

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

글 보관함

«   2025/12   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

링크

카테고리

전체 (44)
ios (1)
mfc & winAPI (17)
c & c++ (4)
java (1)
eclipse (1)
visual_studio (2)
javascript (3)
asp (1)
oracle (3)
개발이야기 (5)
윈도우 일반 (2)
etc (2)
reference (2)
personal_reference (0)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
hyeonk's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

hyeonk lab

hello world! hyeonk lab.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 전체 (44)
    • ios (1)
    • mfc & winAPI (17)
    • c & c++ (4)
    • java (1)
    • eclipse (1)
    • visual_studio (2)
    • javascript (3)
    • asp (1)
    • oracle (3)
    • 개발이야기 (5)
    • 윈도우 일반 (2)
    • etc (2)
    • reference (2)
    • personal_reference (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바