Para criar um editor, basta fazer:
HTML:
<textarea id="code1"></textarea>
<textarea id="code2"></textarea>
JS:
var editor1 = ace.edit('code1');
var editor2 = ace.edit('code2');
editor1.getSession().setValue("this text will be in the first editor");
editor2.getSession().setValue("and this in the second");
CSS:
#code1, code2 {
position: absolute;
width: 400px;
height: 50px;
}
Eles devem ser posicionados e dimensionados explicitamente. Por show () e hide () acredito que você esteja se referindo às funções jQuery. Não sei exatamente como eles fazem isso, mas não pode modificar o espaço que ocupa no DOM. Eu escondo e mostro usando:
$('#code1').css('visibility', 'visible');
$('#code2').css('visibility', 'hidden');
Se você usar a propriedade css 'display', isso não funcionará.
Confira o wiki aqui para saber como adicionar temas, modos, etc ... https://github.com/ajaxorg/ace/wiki/Embedding---API
Nota: eles não precisam ser áreas de texto, eles podem ser qualquer elemento que você quiser.