Conemu : 작업 파일에서 하나의 탭으로 여러 개의 콘솔 창을 만들려면 어떻게해야합니까?


29

작업 파일에서 하나의 탭으로 여러 개의 콘솔 창을 만드는 방법은 무엇입니까? 하나의 탭에서 2x2 크기의 콘솔을 그리드로 만들고 싶습니다. 새 콘솔을 만들고 "오른쪽으로"또는 "아래로"옵션을 선택할 때 직접 수행 할 수 있습니다. 그러나 시작시 자동으로 생성되기를 원합니다. 어떤 이유로 인해 "열린 작업 자동 저장 / 복원"옵션을 사용할 수 없습니다. 따라서 유일한 방법은 작업에서 생성하는 것입니다. 그렇다면 작업에서 2 × 2 그리드를 어떻게 만들 수 있습니까?

답변:


44

이것은 당신의 작업 내용입니다. ConEmu 빌드 120909에서 체크인했습니다.

>cmd -cur_console:n
cmd -cur_console:s1TVn
cmd -cur_console:s1THn
cmd -cur_console:s2THn

이것은 예입니다. ConEmu에서의 분할은 원하는만큼 복잡 할 수 있으며, 비율에 관계없이 모든 구성이 가능합니다. 프로젝트 읽기 위키를 더에 대한 정보 -new_console-cur_console스위치.

새 작업을 만들지 않고 모든 것을 실행하려면

/cmdlist ConEmu.exe의 스위치.

바로 가기 컨텐츠의 사용 예 (예 : 데스크탑) :

ConEmu -cmdlist cmd -cur_console:fn ||| cmd -cur_console:s1TVn ||| cmd -cur_console:s1THn ||| cmd -cur_console:s2THn

다른 cmd 파일에서 실행해야합니까? consoles.cmd예를 들면 다음과 같습니다 .

start ConEmu -cmdlist cmd -cur_console:fn ^|^|^| cmd -cur_console:s1TVn ^|^|^| cmd -cur_console:s1THn ^|^|^| cmd -cur_console:s2THn

이 명령을 실행하는 방법을 알려주시겠습니까? 나는 시도했고 이것이 내가 얻는 것입니다. 최신 빌드가 있습니다.
arin

핵심은 "작업"입니다. 왜 이미 시작된 쉘에서 이것을 실행하려고합니까? 설정 작업.
Maximus 2019

@Maximus 나는 이것이 쉘 명령이라는 인상을 받았습니다. 감사.
arin

1
@arin 쉘에서도 이것을 사용할 수 있지만, -cur_console 대신 -new_console : ...이 필요합니다.
Maximus

@Maximus : 해당 작업 예제에서 창 크기는 정확히 어떻게 구성되어 있습니까? 예를 들어, 트위터에 게시 한 것과 같은 것을 정사각형 그리드가 아닌 곳에 설정하고 싶습니다 . 나를 참조 할 수있는 문서가 있습니까?
Isxek

2

다음 구현을 생각해 냈습니다. 웹 개발 프로젝트에 사용합니다. 작업 러너 (예 : gulp), git, javascript 컴파일러 (예 : typescript) 등의 콘솔. 4 개의 콘솔 창을 열고 디렉토리를 * .cmd를 실행 한 디렉토리로 변경하는 것이 목표였습니다. 배치 스크립트를 변경해야 할 경우를 대비하여 여러 개의 배치 스크립트 사본을 갖고 싶지 않았습니다. 나는 쉘이 배치되는 것을 원하지 않았고 쉘이 bash가되기를 원했다. 나는 창문에 있으므로 bash 쉘에는 cygwin이 필요합니다.

임의로 이름이 지정된 .cmd 파일을 만들었습니다. 나는 내 전화했다 4 consoles.cmd. Cygwin이 설치되어 있습니다 (필자의 경우 64 비트 버전). Cygwin chere패키지도 설치되어 필요합니다.

4 consoles.cmd 함유량:

@echo off

for %%i in ("%~dp0..\..") DO (set dirVar=%%~ni)
for %%i in ("%~dp0.") DO (set dir2Var=%%~ni)

set finalValue=%dirVar% %dir2Var%

start C:\"Program Files"\ConEmu\ConEmu64.exe -cmdlist ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:fna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1TVna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s2THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico"

내가 넣어 4 consoles.cmdA의 파일 호스팅 서비스 백업 목적으로 내 하드 드라이브 충돌을 넣다 위해. 또한 개발 시스템간에 공유 할 때 편의를 위해.

배치 스크립트는 모든 4 개의 콘솔 창의 디렉토리를 .cmd가있는 디렉토리로 변경합니다. 그래서 4 개의 콘솔 창 모두 디렉토리를 변경할 디렉토리에 하드 심볼릭 링크를 만들었 습니다. 심볼릭 링크는 다시 표준을 가리 킵니다 4 consoles.cmd.

심볼릭 링크를 실행하면 4 개의 콘솔 셸 작업 디렉토리가 심볼릭 링크가 파일 시스템에있는 위치가됩니다.

관심있는 사람을위한 내 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 타는 사람

package.json

{
  "name": "MyApp",
  "version": "1.0.0",
  "description": "",
  "main": "gulpfile.js",
  "private": true,
  "devDependencies": {
    "del": "^1.2.0",
    "gulp": "^3.9.0",
    "gulp-batch": "^1.0.5",
    "gulp-concat": "^2.5.2",
    "gulp-imagemin": "^2.2.1",
    "gulp-minify-css": "^1.1.6",
    "gulp-ng-annotate": "^1.0.0",
    "gulp-plumber": "^1.0.1",
    "gulp-rename": "^1.2.2",
    "gulp-sourcemaps": "^1.5.2",
    "gulp-uglify": "^1.2.0",
    "gulp-watch": "^4.2.4",
    "imagemin-pngquant": "^4.1.0"
  },
  "author": "Author",
  "license": "ISC"
}

bower.json

{
  "name": "MyProject",
  "version": "1",
  "license": "MIT",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components"
  ],
  "dependencies": {
    "bootstrap": "~3.3.4",
    "jquery": "~2.1.3",
    "angular": "~1.4.0",
    "angular-route": "~1.4.0",
    "angular-animate": "~1.4.0",
    "font-awesome": "~4.3.0",
    "underscore": "~1.8.3",
    "bootstrap-datepicker": "~1.4.0",
    "angularjs-toaster": "~0.4.12",
    "angular-scroll": "~0.7.0",
    "moment": "~2.10.2",
    "angular-loading-bar": "~0.7.1"
  }
}

gulpfile.js

'use strict';

var gulp = require('gulp');
var batch = require('gulp-batch');
var sourcemaps = require('gulp-sourcemaps');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var concat = require('gulp-concat');
var del = require('del');
var plumber = require('gulp-plumber');
var watch = require('gulp-watch');
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant');
var ngAnnotate = require('gulp-ng-annotate');

gulp.task('default', ['clean'], function () {
    gulp.start('images', 'vendorCss', 'applicationCss', 'fontIcons', 'vendorJavascript', 'applicationJavascript');
});

gulp.task('clean', function (cb) {
    del(['./dist/*'], cb);
});

gulp.task('images', function () {
    return gulp.src([
            './content/img/**/*'
    ])
        .pipe(imagemin({
            optimizationLevel: 3,
            progressive: true,
            interlaced: true,
            svgoPlugins: [{ removeViewBox: false }],
            use: [pngquant()]
        }))
        .pipe(gulp.dest('./dist/img'));
});

gulp.task('fontIcons', function () {
    return gulp.src([
        './bower_components/bootstrap/dist/fonts/**.*',
        './bower_components/font-awesome/fonts/**.*'
    ])
        .pipe(gulp.dest('./dist/fonts'));

});

gulp.task('vendorCss', function () {
    return gulp.src([
        './bower_components/bootstrap/dist/css/bootstrap.css',
        './bower_components/font-awesome/css/font-awesome.css',
        './bower_components/angularjs-toaster/toaster.css',
        './bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css',
        './bower_components/angular-loading-bar/build/loading-bar.css'
    ])
        .pipe(concat('vendor.css'))
        .pipe(gulp.dest('./dist/css'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('./dist/css'));
});

gulp.task('vendorJavascript', function () {
    return gulp.src([
            './bower_components/jquery/dist/jquery.js',
            './bower_components/angular/angular.js',
            './bower_components/angular-route/angular-route.js',
            './bower_components/angular-resource/angular-resource.js',
            './bower_components/angular-animate/angular-animate.js',
            './bower_components/angular-scroll/angular-scroll.js',
            './bower_components/angular-loading-bar/build/loading-bar.js',
            './bower_components/angularjs-toaster/toaster.js',
            './bower_components/bootstrap/dist/js/bootstrap.js',
            './bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js',
            './bower_components/underscore/underscore.js',
            './bower_components/moment/moment.js'
    ])
        .pipe(sourcemaps.init())
        .pipe(concat('vendor.js'))
        .pipe(gulp.dest('./dist/script'))
        .pipe(uglify())
        .pipe(rename('vendor.min.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./dist/script'));
});

gulp.task('applicationCss', function () {
    return gulp.src([
            './content/css/site.css',
            './content/css/animation.css'
    ])
        .pipe(plumber())
        .pipe(concat('app.css'))
        .pipe(gulp.dest('./dist/css'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('./dist/css'));
});

gulp.task('applicationJavascript', function () {
    return gulp.src([
            './angular/**/*.js'
    ])
        .pipe(plumber())
        .pipe(ngAnnotate())
        .pipe(sourcemaps.init())
        .pipe(concat('app.js'))
        .pipe(gulp.dest('./dist/script'))
        .pipe(uglify())
        .pipe(rename('app.min.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./dist/script'));

});

gulp.task('watchApplicationJavascript', ['applicationJavascript'], function () {
    watch('./angular/**/*.js', batch(function (events, done) {
        gulp.start('applicationJavascript', done);
    }));
});

gulp.task('watchApplicationCss', ['applicationCss'], function () {
    watch(['./content/css/site.css', './content/css/animation.css'], batch(function (events, done) {
        gulp.start('applicationCss', done);
    }));
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.